我有一个需要网址的模型:
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字段中具有相同网址的行,如下所示:
duplicateChk = LinkCT.objects.filter(Q(link_url = linkurl))
其中linkurl是一个捕获link_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")),
但没有成功。
答案 0 :(得分:1)
您是否确认您要搜索的网址与数据库中的网址相同? Django的URLField在保存时规范化URL,如果它只是一个域,则在末尾添加斜杠。这有用吗?
duplicateChk = LinkCT.objects.filter(link_url = "http://www.google.com/")