【发布时间】:2015-06-25 14:21:36
【问题描述】:
我有模型 Person - 来自另一个数据库
我将所有person_id 复制到custom_id。
models.py
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
forms.py
class TaskCreateForm(forms.ModelForm):
employee = forms.ModelMultipleChoiceField(queryset=Employee.objects.all())
class Meta:
model = Task
但是Employee.objects.all() 返回一堆custom_id。
我想要以“Employee(..).person.full_name”的形式显示,但只保存custom_id's。
【问题讨论】:
标签: django django-models django-forms django-views