如何在Django视图中访问多项目索引模型?
我有一个Django模型,索引为3项如何在Django视图中访问多项目索引模型?,django,django-models,django-views,composite-primary-key,Django,Django Models,Django Views,Composite Primary Key,我有一个Django模型,索引为3项 class Url(models.Model): word1 = models.CharField(max_length=50) word2 = models.CharField(max_length=50) word3 = models.CharField(max_length=50) #more fields here class Meta: indexes= [models.Index(fiel
class Url(models.Model):
word1 = models.CharField(max_length=50)
word2 = models.CharField(max_length=50)
word3 = models.CharField(max_length=50)
#more fields here
class Meta:
indexes= [models.Index(fields=['word1','word2','word3'])]
这个项目由一个url调用,该url包含我的url.py中的索引值(我认为我做得对,但仍然有点像django的noobie)
您可以尝试:
def redirect(request,word1,word2,word3):
url = Url.objects.filter(word1=word1, word2=word2, word3=word3).first() # for one db entry,
# rest of the code
对不起,我忘了提一下,但是有没有一个好方法可以设置默认值以防过滤器失败?这很奇怪,你的编辑出现了,然后马上消失了,删除了我添加的相同内容。在您的评论之后,我认为内容是不需要的。如果queryset为None,您可以定义一个默认url。
def redirect(request,word1,word2,word3):
# just load one db entry instead of url = Url.objects.all()
return HttpResponseRedirect('someother.variablefrom.mymodel')
def redirect(request,word1,word2,word3):
url = Url.objects.filter(word1=word1, word2=word2, word3=word3).first() # for one db entry,
# rest of the code