我在模型设计方面需要一些帮助。我想要一个模型,用户可以通过从表单提交它们来将自己与大量电子邮件联系起来。当用户想要使用网站联系表格时,他可以选择他想要回复的电子邮件。它会是这样的:
class Email(models.Model):
author = models.ForeignKey(User)
email = models.EmailField()
class Contact(models.Model)
author = models.ForeignKey(User)
email = models.ForeignKey(Email)
答案 0 :(得分:1)
您的示例意味着每个联系人都可以拥有一个电子邮件地址,每个电子邮件地址都可以属于多个联系人。这是错误的方式,即你应该将ForeignKey放在电子邮件模型上。
这可以让您为每个用户存储多个电子邮件地址。
class Email(models.Model):
email = models.EmailField()
user = models.ForeignKey(User)
u = User.objects.get(pk=1)
u.email_set.all()
答案 1 :(得分:0)
您想要向用户添加用户个人资料。
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()
访问它。