[英]Django Model design
我需要一些模型設計方面的幫助。 我想要一個模型,用戶可以通過從表單提交它們來將自己與大量電子郵件聯系起來。 當用戶想要使用網站聯系表格時,他可以選擇他想要回復的電子郵件。 會是這樣的:
class Email(models.Model):
author = models.ForeignKey(User)
email = models.EmailField()
class Contact(models.Model)
author = models.ForeignKey(User)
email = models.ForeignKey(Email)
您的示例意味着每個聯系人都可以擁有一個電子郵件地址,每個電子郵件地址可以屬於多個聯系人。 這是錯誤的方式,即你應該將ForeignKey放在電子郵件模型上。
這應該允許您為每個用戶存儲多個電子郵件地址。
class Email(models.Model):
email = models.EmailField()
user = models.ForeignKey(User)
u = User.objects.get(pk=1)
u.email_set.all()
您想要向用戶添加用戶個人資料。
from django.contrib import auth
class UserProfile(models.Model):
"""A user profile."""
user = models.OneToOneField(auth.models.User)
# ... put more fields here
def user_post_save(sender, instance, **kwargs):
"""Make sure that every new user gets a profile."""
profile, new = UserProfile.objects.get_or_create(user=instance)
models.signals.post_save.connect(user_post_save, sender=auth.models.User)
然后你可以使用request.user.get_profile()
訪問它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.