如何使Django的选择选项在mod中是动态的

2024-09-29 18:38:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用django创建一个参考词典。词典是从一种语言到另一种语言的某些领域的翻译。在

词典是这样的:'id','lng1','lng2','lng3' 我有一个在其中一个领域使用词典的模型。在

class lexicon(models.Model):
    lng1 = model.Charfield(max_length=255)
    lng2 = model.Charfield(max_length=255)
    lng3 = model.Charfield(max_length=255)

lexicon_choices = (
  (lng1=lng1),
  (lng2=lng2),
  (lng3=lng3)
)


class model(models:Model):
    model_name = model.Charfield(max_length=255, unique)
    field1 = model.Charfield(max_length=3,CHOICES=lexicon_choices)

这很好,但是我想知道,有没有一种方法可以从class lexicon中收集列名,并将它们作为class model的选择进行移植?我是第一次使用Django Rest框架,我想确保正确的lng存在。在

谢谢


Tags: 语言modelmodelslengthmax领域class词典
2条回答

是的,可能。但是在管理员py在

class CustomForm(forms.ModelForm):
    class Meta:
        model = YourModel

    def __init__(self, *args, **kwargs):
        super(CustomForm, self).__init__(*args, **kwargs)
        choices = [(x.id, x.name) for x in Lexicon.objects.all()]
        self.fields['field1'].choices = choices

class YourModelAdmin(admin.ModelAdmin):
    form = CustomForm

和您的原版一样:

^{pr2}$

重要:请勿使用小写字母命名类名。;)

您可以在主模型的lexicon类上使用ForeignKey。这将确保一对多的关系。你可以把这些值存储在数据库中。在

相关问题 更多 >

    热门问题