我有一个由ForeignKey
链接的两个不同模型,其中包含某个uuid
,另一个有id
。我希望能够将这些内容放在同一个网址中。
这里是 models.py :
class Creation(models.Model):
...
uuid = models.UUIDField(default=uuid.uuid4, unique=True)
class User(models.Model):
...
creation = models.ForeignKey(Creation, null=True)
以下是网址模式的样子:
url(r'^edit/(?P<id>\d+)/(?P<uuid>[^/]+)/$', views.edit, name='edit'),
Views.py
def edit(request, id, uuid):
user_uuid = User.objects.filter(id=id)
user = get_object_or_404(User, id=id, uuid=user_uuid.creation.uuid)
正如您所看到的那样,视图功能没有任何意义,因为我不知道我尝试做的事情应该如何工作,但User
应该是网址和Creation
应该是uuid,因为每个用户都可以拥有多个Creation
。
我怎样才能做到这一点?
答案 0 :(得分:2)
您的问题很难理解,但我认为您想要的是:
user = User.objects.get(id=id)
creation = user.creation_set.filter(uuid=uuid)
当然要注意,因为uuid是唯一的,所以根本不需要在查询中使用用户ID;你可以完全从URL中删除它,只使用uuid来获取Creation,然后通过creation.user
获取用户。