如何附加由django模型创建的数据库表

问题描述 投票:0回答:1

我正在按照教程https://simpleisbetterthancomplex.com/tutorial/2017/02/18/how-to-create-user-sign-up-view.html制作一个简单的用户注册网站。

model.py中定义的关键模型是

from django.db import models
from django.contrib.auth.models import User
from django.db.models.signals import post_save
from django.dispatch import receiver

class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    bio = models.TextField(max_length=500, blank=True)
    location = models.CharField(max_length=30, blank=True)
    birth_date = models.DateField(null=True, blank=True)

@receiver(post_save, sender=User)
def update_user_profile(sender, instance, created, **kwargs):
    if created:
        Profile.objects.create(user=instance)
    instance.profile.save()

这将在数​​据库中创建表配置文件。我的问题是我们如何附加此表以包含用户的名/姓和电子邮件等信息。我知道这些信息存储在auth_user中,但将一切都放在一个表上会很好。

我是django平台的新手。非常感谢任何解释或参考。

python django database postgresql
1个回答
0
投票

如果你想在Profile模型中附加first_name,姓氏和电子邮件,那么就不需要这个user = models.OneToOneField(User, on_delete=models.CASCADE)所以基本上你可以删除这一行并将这些字段附加到模型中,如:

first_name = models.TextField(max_length=50, blank=True)
last_name = models.TextField(max_length=50, blank=True)
email = models.TextField(max_length=200, blank=True)

并运行命令:python manage.py makemigrations然后python manage.py migrate但我不会建议你这样做。

我建议你使用django auth用户模型,因为那时你很容易就像django一样维护会话等。遵循: - qazxsw poi

© www.soinside.com 2019 - 2024. All rights reserved.