在我的應用程序,我需要的User
與user-selected-filename
Django的一個一對多的關係
用戶相關聯只能選擇一個filename.But相同的文件名可以由許多用戶
所以選擇,數據庫表可能是這樣
AUTH_USER(由django.contrib.auth
創建)
-----------------------------------------
id | username | first_name | last_name | ...
------------------------------------------
1 | bert | bert | russel |...
------------------------------------------
2 | jon | jon | snow | ...
-------------------------------------------
3 | alice | alice | tanner | ...
userfile的表
-----------------------------------------------
id | filename
------------------------------------------------
1 | '/clips/summary.mp4'
------------------------------------------------
2 | '/clips/intro.mp4'
------------------------------------------------
user_userfile表
-----------------------------------
user_id | userfile_id
-----------------------------------
1 | 1
-----------------------------------
2 | 1
-----------------------------------
3 | 2
-----------------------------------
看來userfile--user
是1 - n
關係。 1個用戶文件可以與許多用戶關聯。
那麼,我應該用什麼來表示這種關係? 在課堂userfile的下面給出的,如果我用
user = db.models.ForeignKey(django.contrib.auth.User)
那樣只會讓反向關係(即n-1
爲userfile--user
)
class UserFile(db.models.Model):
filename = db.models.CharField()
user = ??
創造Django的'1-N'關係的方法是使用一個外鍵。在這種情況下,我會在'User'模型中創建一個外鍵。我沒有看到任何問題。 –
@DiegoNavarro **從不**修改Django的代碼。除非你確定他們會接受你的補丁:由於它是特定於項目的,所以這裏肯定不是這種情況。 – jpic
我不是在談論修改任何Django代碼,只是回答關係問題。在這種情況下,您應該創建子類或創建中間件。 –