我正试图复制血型作为这张图片中定义的模型。
在我的models.py文件中,我有复制血型的代码,如下所示
class BloodGroup(models.Model):
name = models.CharField(
max_length=3
)
gives = models.ManyToManyField("self")
receives = models.ManyToManyField("self")
def __str__(self):
return self.name
在我的admin.py文件中,我注册了如下模型
class BloodGroupAdmin(admin.ModelAdmin):
model = BloodGroup
list_display = ['name', 'get_gives', 'get_receives']
def get_gives(self, obj):
return ", ".join([item.name for item in obj.gives.all()])
def get_receives(self, obj):
return ", ".join([item.name for item in obj.receives.all()])
admin.site.register(BloodGroup, BloodGroupAdmin)
最初,我只提供它们的名称,创建了没有“给予”和“接受”属性的纯血族对象。因此,我为所有8种类型创建了一个对象。然后,当我向每个对象添加关系时,我发现为一个对象添加给予或接受也会影响其他对象的给予和接受,从而无法复制图像中的结构
对于第一个问题,最好只有一个关系
gives
receives
可以在the reverse query中找到。像这样:然后只需要将对象添加到
gives
receives
将自动生成对于第二个问题,将
short_description
属性添加到函数(reference to docs)。像这样:相关问题 更多 >
编程相关推荐