我正在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 Framework,我想确保正确lng
。
由于
答案 0 :(得分:1)
您可以在ForeignKey
课程中使用lexicon
到您的主模型。这将确保一对多的关系。您可以将值存储在数据库中。
答案 1 :(得分:0)
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
您的原始模型如下:
class YourModel(models:Model):
model_name = model.Charfield(max_length=255, unique)
field1 = models.CharField(max_length=10, choices=(('--', '--'),))
重要:不使用小写命名您的类名。 ;)