[英]how to store a dictionary in django model as a field?
我正在嘗試建立一個社交網絡,希望我的用戶擁有3個隱私選項[privtae,public,friends_except],
私人和公共是布爾字段,並且friends_except是用戶列表
如果不可能將dict作為字段存儲在模型中,那么我該怎么做才能實現我想要的。
首先,如果您使用的是關系數據庫,則可以創建一個包含所有這些屬性的新模型,並將它們作為與主模型的外鍵鏈接,也可以對其進行反規范化以將所有文件分別存儲在基本模型中。 如果您使用的是像MongoDB這樣的nosql系統,那么您當然可以將其存儲為字典或JSON字段。
其次,由於一次只能選擇一個隱私選項,因此為什么要使用單獨的模型甚至是字典類型的構造。 只需將其存儲為具有指定選項的CharField
。
PRIVACY_CHOICES = [('public', 'public'), ('private', 'private', ('custom', 'custom')]
privacy_choice = models.CharField(max_length=256, choices=PRIVACY_CHOICES)
friends_allowed = models.ManyToManyField('User', blank=True)
看起來,而不是您的方法,我建議您創建一個模型,比如說Friends_except,其中1字段是用戶模型的外鍵。 您將能夠將要阻止的所有用戶發送到被阻止的用戶表
(那是在Facebook上發生的事情)
然后在視圖中,您可以輕松進行簡單的查詢
if:
user.is_authentictaed and is not in users.friends_except.objects.all()
" display your post" else Nah.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.