gpt4 book ai didi

python - 一对一字段 Django Admin

转载 作者:行者123 更新时间:2023-11-28 17:42:42 25 4
gpt4 key购买 nike

编辑为使用一对一字段

我想将建筑物的面积添加到 django modeladmin。表结构为

class Area(models.Model):
id= models.IntegerField('Buildings', db_column='id')
area=models.FloatField(blank=True, null=True)

class Buildings(models.Model):
id = models.AutoField(primary_key=True)
auto_sf = models.OneToOneField(Area, db_column='id')

我知道我可以通过使用访问 area 属性

b=buildings.get(id=1)
print(b.area.area)

但我不明白如何将 b.area.area 合并到 modeladmin 中 - 因为这行不通。

class AdminSection(admin.ModelAdmin):

def area(self, obj):
return obj.area.area

fields=(('id','area'))

最佳答案

如前所述,您希望使用 inline model admin ,像这样:

class AreaInline(admin.StackedInline):
model = Area
class BuildingAdmin(admin.ModelAdmin):
inlines = (AreaInline, )
admin.site.register(Building, BuildingAdmin)

此外,理想情况下,您的模型应具有单数名称,即 Building,以更具语义意义 - 例如建筑物有一个区域。除非 Buildings 对象确实在每个实例中管理多个建筑物。

关于python - 一对一字段 Django Admin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22209293/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com