gpt4 book ai didi

python - django admin - 强制用户创建新记录而不是利用现有记录

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

这是一个 Django 模型:

class Question(models.Model):
text = models.TextField(verbose_name=u'Вопрос')
is_free_text = models.BooleanField(verbose_name=u'Ответ в виде текста?')
options = models.ManyToManyField('QuestionOption', related_name='option',null=True, blank=True)

及其使用的选项模型:

class QuestionOption(models.Model):
text = models.TextField(verbose_name=u'Вариант ответа')
score = models.IntegerField()

Django 管理员,当您尝试添加新问题时,会显示一个表单,您可以在其中输入问题文本,勾选 is_free_text 复选框和一个包含现有选项的列表框以及一个加号图标,以便您添加新选项。

有没有办法禁用此行为并强制用户始终添加新选项而不是能够同时选择现有选项?理想情况下,我不希望他们看到现有选项,因为这有时会造成混淆。就像一行文本和一个分数文本框以及一个加号图标来添加选项文本及其分数的新记录?

我正在尝试尽可能多地利用现有的 django 管理,我想我看到这完全按照我在这里尝试表达的方式完成,但不记得在哪里。

最佳答案

据我了解你的问题,你应该使用 InlineModelAdmin :

class QuestionOptionInline(admin.StackedInline):
model = QuestionOption

extra = 1 # show only one QuestionOption form

def queryset(self, request):
# hack: don't show existed QuestionOption
return QuestionOption.objects.none()

class QuestionAdmin(admin.ModelAdmin):
fields = ['text', 'is_free_text']
inlines = [QuestionOptionInline]

关于python - django admin - 强制用户创建新记录而不是利用现有记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12802491/

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