gpt4 book ai didi

python - 多级内联 Django

转载 作者:太空宇宙 更新时间:2023-11-04 03:27:10 24 4
gpt4 key购买 nike

这是我的模型

from django.db import models

class Page(models.Model):
page_id = models.IntegerField(default=0)

class Question(models.Model):
page = models.ForeignKey(Page)
question = models.CharField(max_length=150)

class Option(models.Model):
question = models.ForeignKey(Question)
option = models.CharField(max_length=100)
image_class = models.CharField(max_length=75)

这是我的admin.py

from django.contrib import admin
from .models import Page, Question, Option

class OptionInline(admin.StackedInline):
model = Option
extra = 1

class QuestionInline(admin.StackedInline):
model = Question
extra = 1
inlines = [OptionInline]

class PageAdmin(admin.ModelAdmin):
inlines = [QuestionInline]

admin.site.register(Page, PageAdmin)

基本上我希望这种多级关系在管理站点中显示为多级内联。有人可以帮忙吗

最佳答案

Django 1.8 没有使用嵌套内联,而是提供了 InlineModelAdmin.show_change_link

from django.contrib import admin
from .models import Page, Question, Option

class OptionInline(admin.StackedInline):
model = Option
extra = 1

class QuestionInline(admin.StackedInline):
model = Question
extra = 1
show_change_link = True


class PageAdmin(admin.ModelAdmin):
inlines = [QuestionInline,]

admin.site.register(Page, PageAdmin)


class QuestionAdmin((admin.ModelAdmin):
inlines = [OptionInline,]

admin.site.register(Question, QuestionAdmin)

这样,当您保存 Page模型 - 已完成内联 Question模型- 一个名为“更改”的链接将出现在已保存的内联实例中 Question模型。单击它,您将登陆Question 的主页。带有 Option 的模型实例内联模型。

当您完成 Option内联模型并点击“保存并继续编辑”,后退按钮应该会返回到相关的 Page实例。

还有a post其中描述了如果您使用以前的 Django 版本,您将如何获得相同的结果。

关于python - 多级内联 Django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32579517/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com