【问题标题】:Django admin select box options from modelDjango 管理员从模型中选择框选项
【发布时间】:2018-12-30 12:07:10
【问题描述】:

我有语言类别、标签和问题模型。添加问题时,我想在管理面板的多选下拉/复选框中选择类别和多个标签 这是我的问题模型:

from django.db import models
from datetime import datetime
from languages.models import Language
from categories.models import Category
from tags.models import Tag


class Question(models.Model):
language = models.ForeignKey(Language, on_delete=models.DO_NOTHING)
category = models.ForeignKey(Category, on_delete=models.DO_NOTHING)
tags = models.CharField(max_length=200, blank=True)

def __str__(self):
    return self.title

如何在 Django 管理面板中实现这一点?

【问题讨论】:

    标签: django admin


    【解决方案1】:

    为此,我认为您可以使用ManyToManyField。像这样:

    from django.db import models
    from datetime import datetime
    from languages.models import Language
    from categories.models import Category
    from tags.models import Tag
    
    
    class Question(models.Model):
    
        language = models.ForeignKey(Language, on_delete=models.DO_NOTHING)
        category = models.ForeignKey(Category, on_delete=models.DO_NOTHING)
        tags = models.ManyToManyField(Tag)
    
        def __str__(self):
            return self.title
    

    【讨论】:

    • 谢谢@nuddra,我会尽快检查并看到结果。
    • 正确,它正在工作@ruddra。非常感谢。你能告诉我如何在相同的场景中实现语言的空值吗?
    • 我觉得你可以用language = models.ForeignKey(Language, on_delete=models.DO_NOTHING, null=True, blank=True)
    猜你喜欢
    • 2011-03-04
    • 1970-01-01
    • 1970-01-01
    • 2012-09-19
    • 2017-05-03
    • 1970-01-01
    • 1970-01-01
    • 2020-03-15
    • 1970-01-01
    相关资源
    最近更新 更多