首页 > 解决方案 > Django模型修改

问题描述

好的,我有这个 django 应用程序,用户在其中填写他们的详细信息,然后创建一个网络配置文件(用户名和密码)

from django.db import models

class UserDetail(models.Model):
    first_name = models.CharField(max_length=225)
    middle_name = models.CharField(max_length=255, blank=True, null=True)
    last_name = models.CharField(max_length=255)
    email = models.EmailField()

    def __str__(self):
        return self.first_name


class WebDetail(UserDetail):
    # user = models.OneToOneField(UserDetail, on_delete=models.CASCADE, primary_key=True,)
    username = models.CharField(max_length=255)
    password = models.CharField(max_length=255)

当我创建一个具有 webdetail 的用户时,它在数据库中显示为空(django admin)

我需要帮助来链接 WebDetail 以从 userdetail 继承,并且它们也可以显示在数据库中(django admin)

感谢您的贡献:)

标签: pythondjangowebdjango-models

解决方案


我找到了这篇关于模型继承的文章,文章末尾有这样的评论,内容如下:

“无论谁将来阅读本文,请确保将以下方法添加到每个产品类型类中,例如:

class Label(Product):
    objects = LabelManager()

    class Meta:
        proxy = True

    def save(self, *args, **kwargs):
        self.product_type = 'Label'
        return super(Label, self).save(*args, **kwargs)

否则,您将无法在创建对象后看到它。干杯:)”

这是文章的链接。这一切都与模型继承有关,在您创建具有 WebDetail 的用户后,上面的代码应该可以帮助您解决空数据库的问题。我会尝试添加类似于您的 WebDetail 类的内容。


推荐阅读