这是一种可以使用onetoonefields解决问题的方法。
模特儿
class DataModel(models.Model):
name = models.TextField(max_length=100)
def __str__(self):
return '%s' % self.name
def two_fields(self):
id = self.id
field1 = ModelData.objects.get(connected_table_id=id).data1
field2 = ModelData.objects.get(connected_table_id=id).data2
return '%s %s' % (field1, field2)
class ModelData(models.Model):
data1 = models.IntegerField()
data2 = models.IntegerField()
connected_table = models.OneToOneField(DataModel,
related_name="DataModel",
on_delete=models.CASCADE,
)
def extramethod(self):
code = self.connected_table_id
format_code = DataModel.objects.get(id=code).name
return format_code
行政管理部门
@admin.register(ModelData)
class ModelDataAdmin(admin.ModelAdmin):
list_display = ('id', 'data1', 'data2', 'connected_table', 'extramethod',)
@admin.register(DataModel)
class ModelDataAdmin(admin.ModelAdmin):
list_display = ('name', 'two_fields',)