Django 1.3。
假设我有模特:
class Inspector(models.Model):
field = models.IntegerField()
Model_1(models.Model):
inspectors = ManyToManyField(InspectorData)
我必须创建另一个模型,其中字段只能存储来自Model_1().inspectors
属性的数据。 Smth喜欢:
class Model_2(models.Model):
model_1_inspectors = ManyToManyField(Model_1__inspectors)
如何在Django中完成此操作(如果可能的话)?
提前致谢。
答案 0 :(得分:1)
第一个选项是覆盖save
中的Model_1
方法以及特殊创建的模型Model1inspectors
中的每个保存操作更新检查员。这样,“Model_2”看起来就像你的问题。
但我认为最好为表单中的ManyToManyField
自定义查询集,如下所示:
class Model_2Form(forms.ModelForm):
class Meta:
model = Model_2
def __init__(self, *args, **kwargs):
super(Model_2Form, self).__init__(*args, **kwargs)
self.fields['model_1_inspectors'].queryset = InspectorData.objects.filter(
pk__in=Model_1.objects.values('inspectors').distinct())
答案 1 :(得分:0)
导入所需的模型
from myapp_folder.models import Inspector
class Model_2(models.Model):
model_1_inspectors = ManyToManyField(Inspector)
这将有效