在我的应用程序,我需要的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代码,只是回答关系问题。在这种情况下,您应该创建子类或创建中间件。 –