簡體   English   中英

Django模型設計

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM