python - Django 编辑子级中父级的字段

标签 python django django-models django-admin python-3.5

我在 django-admin 方面遇到问题。我有三个对象:

  • 描述
  • 工作
  • 项目

我想直接在作业和项目中编辑描述。

这是我的model.py:

class Description(models.Model):
    short_desc = models.TextField()
    long_desc = models.TextField()


class Job(models.Model):
    location = models.TextField()
    desc = models.ForeignKey(Description)


class Project(models.Model):
    name = models.TextField()
    desc = models.ForeignKey(Description)

因此,从概念上讲,DescriptionJobProject 的父级。

还有我的admin.py:

class DescriptionInLine(admin.StackedInline):
    model = Description


@admin.register(Project)
class ProjectAdmin(admin.ModelAdmin):
    model = Project
    inlines = [DescriptionInLine]


@admin.register(Job)
class JobAdmin(admin.ModelAdmin):
    model = Job
    inlines = [DescriptionInLine]

每当我运行 django 服务器时,都会收到以下错误:

<class 'admin.DescriptionInLine'>: (admin.E202) 'Description' has no ForeignKey to 'Job'.

我明白为什么会收到错误:django 期望关系以另一种方式存在。

我还尝试用 OneToOneField 替换 ForeignKey,但没有成功。

知道如何解决这个问题吗?

最佳答案

您会收到此错误,因为内联旨在用于另一个方向(请参阅 this question )。

我认为对于您的用例,您最好使用 model inheritance :

class Description(models.Model)

    class Meta:
        abstract = True
        # Abstract is optional but I think for your usecase,
        # standalone `Description` does not make any sense.
        # If not `abstract`, a one-to-one relation will be implied
        # between parent and children

    short_desc = models.TextField()
    long_desc = models.TextField()

class Job(Description):
    location = models.TextField()

class Project(Description):
    name = models.TextField()

关于python - Django 编辑子级中父级的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38245087/

相关文章:

python - Django 2.1.7 : Populate Child field with Selected Parent Attributes in Product Model

python - 如何从子类中的父表单中删除字段?

django - send_mass_emails 和 EmailMultiAlternatives

django 多重继承

python - 填充现有 numpy 数组和创建新数组之间的性能差异

Python ElementTree 解析未绑定(bind)前缀错误

javascript - 如何关闭弹出窗口并将网址重定向到父页面?

python - Django GenericIPAddress 字段不验证输入

python - 如何验证 Jupyter Notebook 中的 python 代码?

python - 用 python 编码 URL 的百分比