使用Django和Vue在GET查询中分析字符(&C)

3gtaxfhh  于 2022-09-28  发布在  Go
关注(0)|答案(1)|浏览(206)

我们使用axios将GET请求传递给我们的django示例,它将其拆分为搜索词并运行搜索。这一直很好,直到我们遇到了一个边缘情况。我们使用urlencode来确保字符串没有空格或其他空格
所以概括一下这个问题,我们有一个名为“name”的TextField,我们想搜索术语“A&B Company”。然而,问题是当请求到达django时。
我们预期name=A%20&%20B%20Company&field=value将被解析为name='A&B Company'和field='value'。
相反,它被解析为name='A''B Company'和field='value'。尽管已编码,但&符号被错误地视为分隔符。
是否有方法指示django GET参数某些&符号是值的一部分,而不是字段的分隔符?

bf1o4zei

bf1o4zei1#

您可以使用lib urllib

class ModelExample(models.Model):
    name = models.TextField()

# in view...

from urllib.parse import parse_qs

instance = ModelExample(name="name=A%20&%20B%20Company&field=value")
dict_qs = parse_qs(instance.name)

dict_qs包含一个带解码querystring的dict

你可以找到更多关于urllib的信息。在此处解析:https://docs.python.org/3/library/urllib.parse.html

相关问题