如何将两个不同模型的uuid和id放在同一个url中?
How to put two different model's uuid and id in a same url?
我有两个不同的模型,由 ForeignKey
链接,一个包含特定的 uuid
,另一个包含特定的 id
。我希望能够将它们放在同一个 URL.
这是 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 模式应该是这样的:
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
应该是 [=40 中的 id =] 并且 Creation
应该是 uuid 因为每个用户可以有很多 Creation
s.
我怎样才能做到这一点?
你的问题比较难理解,但我认为你想要的是:
user = User.objects.get(id=id)
creation = user.creation_set.filter(uuid=uuid)
当然请注意,由于 uuid 是唯一的,因此根本不需要在查询中使用用户 ID;您可以完全从 URL 中删除它,仅使用 uuid 来获取 Creation,然后通过 creation.user
.
获取用户
我有两个不同的模型,由 ForeignKey
链接,一个包含特定的 uuid
,另一个包含特定的 id
。我希望能够将它们放在同一个 URL.
这是 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 模式应该是这样的:
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
应该是 [=40 中的 id =] 并且 Creation
应该是 uuid 因为每个用户可以有很多 Creation
s.
我怎样才能做到这一点?
你的问题比较难理解,但我认为你想要的是:
user = User.objects.get(id=id)
creation = user.creation_set.filter(uuid=uuid)
当然请注意,由于 uuid 是唯一的,因此根本不需要在查询中使用用户 ID;您可以完全从 URL 中删除它,仅使用 uuid 来获取 Creation,然后通过 creation.user
.