如何在Django视图中访问多项目索引模型?

如何在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

我有一个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(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