【发布时间】:2014-06-18 06:41:25
【问题描述】:
我有一个带有 url 的模型:
class LinkCT(models.Model):
link_id = models.AutoField(primary_key=True)
link_slug = models.SlugField(null=False,blank=False)
link_title = models.CharField(max_length=500, null=False, blank=False)
link_desc = models.TextField(null=True, blank=True)
link_url = models.URLField(null=False, blank=False)
我正在尝试过滤在 link_url 字段中具有相同 url 的行,如下所示:
duplicateChk = LinkCT.objects.filter(Q(link_url = linkurl))
其中 linkurl 是一个变量,用于捕获 link_url 的发布数据。我已经有一些具有相同 url 的条目,但它返回的是空白列表。
有其他过滤 URLField 的方法吗?我搜索了它,但似乎我是第一个面临这个问题的人,否则我只是遗漏了代码中的一些琐碎内容。
我从 python manage.py shell 尝试过,它也返回空白列表。但是,我可以使用其他非 url 字段进行过滤。
网址是:
http://www.google.com
或类似的东西。变量
linkurl = request.POST['link_url'].
尝试对值进行硬编码,例如
duplicateChk = LinkCT.objects.filter(Q(link_url = "http://www.google.com")),
但没有成功。
【问题讨论】:
-
您可以粘贴您要过滤的网址示例吗? (linkurl 和 link_url 条目。
-
是的,我认为您需要扩展“捕获link_url 的帖子数据的变量”。上面的查询只有在“linkurl”等于数据库中保存的整个 url 时才有效。
-
另外,你不需要这样做
filter(Q(link_url = linkurl))你可以这样做filter(link_url=linkurl) -
你能硬编码linkurl值来看看它是否工作吗?如果是,则意味着您的数据与您对 POST 的预期不同。
-
网址是'google.com'或类似的东西。变量'linkurl = request.POST['link_url']'。尝试对值进行硬编码,例如“duplicateChk = LinkCT.objects.filter(Q(link_url = 'google.com'))”,但没有成功。
标签: django django-models filter