3


0

Djangoモデルの設計

モデルの設計に助けが必要でした。 ユーザーがフォームから送信することで多数のメールに関連付けることができるモデルが必要でした。 また、ユーザーがWebサイトの連絡先フォームを使用する場合、返信するメールを選択できます。 このようなものになりますか:

class Email(models.Model):
    author = models.ForeignKey(User)
    email = models.EmailField()

class Contact(models.Model)
    author = models.ForeignKey(User)
    email = models.ForeignKey(Email)

2 Answer


1


あなたの例では、各連絡先は単一のメールアドレスを持つことができ、各メールアドレスは複数の連絡先に属することができます。 これは間違った方法です、つまり EmailモデルにForeignKeyを配置する必要があります。

これにより、ユーザーごとに複数の電子メールアドレスを保存できます。

class Email(models.Model):
    email = models.EmailField()
    user = models.ForeignKey(User)

u = User.objects.get(pk=1)
u.email_set.all()


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()`でアクセスできます。