Python Django模型设计
我需要一些模型设计方面的帮助。我想要一个模型,在这个模型中,用户可以通过表单提交大量电子邮件来将自己与之关联。当用户想要使用网站联系表单时,他可以选择他想要回复的电子邮件。会是这样的吗?Python Django模型设计,python,django,django-models,Python,Django,Django Models,我需要一些模型设计方面的帮助。我想要一个模型,在这个模型中,用户可以通过表单提交大量电子邮件来将自己与之关联。当用户想要使用网站联系表单时,他可以选择他想要回复的电子邮件。会是这样的吗? class Email(models.Model): author = models.ForeignKey(User) email = models.EmailField() class Contact(models.Model) author = models.ForeignKey(
class Email(models.Model):
author = models.ForeignKey(User)
email = models.EmailField()
class Contact(models.Model)
author = models.ForeignKey(User)
email = models.ForeignKey(Email)
您想向用户添加用户配置文件
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()
访问它。您的示例意味着每个联系人可以有一个电子邮件地址,并且每个电子邮件地址可以属于多个联系人。这是一个错误的方法,即你应该把外键放在电子邮件模型上
这将允许您为每个用户存储多个电子邮件地址
class Email(models.Model):
email = models.EmailField()
user = models.ForeignKey(User)
u = User.objects.get(pk=1)
u.email_set.all()
Django中没有“ForeignField”-它是
ForeignKey
。联系人模型不需要“作者”字段。可以从联系人模型的电子邮件字段访问作者。除此之外,这对我来说似乎是合理的。好吧,这样你就可以利用Django为此而内置的东西。无论如何,您可能会向您的用户配置文件添加更多内容。