2017-08-22 27 views
0

我有兩個不同的模型鏈接的一個ForeignKey一個包含一定的uuid和另一個具有一定的id。我希望能夠把這些放在同一個URL中。如何將兩個不同模型的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應該是URL中的id,並且Creation應該是uuid,因爲每個用戶可以有很多Creation s。

我該如何做到這一點?

+0

'models.ForeignKey(UserCreation,null = True)'在這裏,它是'Creation'還是'UserCreation'? –

+0

@ArpitSolanki編輯錯字 – Lindow

+0

什麼是'UserInfo'?如果它的一個模型,然後請張貼 –

回答

2

你的問題是相當令人費解,但我認爲你想要的是:當然

user = User.objects.get(id=id) 
creation = user.creation_set.filter(uuid=uuid) 

不過請注意,由於UUID是獨一無二的,沒有必要使用用戶ID查詢完全;你可以完全從URL中刪除它,只需使用uuid即可獲得創建,然後通過creation.user獲取用戶。

+0

我稍後將簡化uuid,因此它包含8個字符,但我希望擁有/ user_id/creation_uuid,這樣用戶可以在創建不同的創建時看到他的id,那麼creation_set會做什麼? – Lindow

+1

爲您提供與該特定用戶關聯的所有Creations。請參閱文檔中的「反向關係」。 –

相關問題