我有模型Person - 来自另一个数据库
我已将所有person_id
复制到custom_id
。
class Employee(models.Model):
custom_id = models.CharField(max_length=20, unique=True)
@property
def person(self):
return Person.objects.get(person_id='%s' % self.custom_id)
def __str__(self):
return '%s' % self.custom_id
class Task(models.Model):
employee = models.ManyToManyField(Employee, blank=True, null=True)
task = models.CharField(max_length=100)
comment = models.CharField(max_length=200)
def __str__(self):
return '%s' % self.task
我将方法person()
添加到Employee,允许我访问另一个数据库中的其他对象模型:
所以基本上当我在shell中输入它时:
Employee.objects.get(custom_id='123').person.full_name
u'Adam Dylan'
我有ModelForm
使用ModelMultipleChoiceField
class TaskCreateForm(forms.ModelForm):
employee = forms.ModelMultipleChoiceField(queryset=Employee.objects.all())
class Meta:
model = Task
但Employee.objects.all()
会返回一堆custom_id' s。
我想要的是以表格形式展示" Employee(..).person.full_name
"但只保存custom_id's
。
答案 0 :(得分:0)
我不确定为什么你认为我给你的另一个问题的答案在这里不起作用。你试过以下吗?如果它不起作用,它究竟是如何失败的?
class EmployeeMultipleChoiceField(ModelMultipleChoiceField):
def label_from_instance(self, obj):
return obj.person.full_name
class TaskCreateForm(forms.ModelForm):
employee = EmployeeMultipleChoiceField(queryset=Employee.objects.all())
class Meta:
model = Task