【发布时间】:2012-10-20 00:01:56
【问题描述】:
型号:
class Detail(models.Model):
def __unicode__(self):
return self.title
title = models.CharField(max_length=32)
class Cars(models.Model):
def __unicode__(self):
return self.name
name = models.CharField(max_length=32, unique=True)
details = models.ManyToManyField(Detail)
所以,每辆车都有很多细节 - 车轮、发动机等。如何做到这一点:在 Django Admin 中的 Cars 菜单中,在该菜单中我们有许多细节行(如tutorial)。 在 admin 我使用:
class DetailInline(admin.TabularInline):
model = Detail
extra = 6
class CarsAdmin(admin.ModelAdmin):
inlines = [DetailInline]
但它有错误:Detail has no ForeignKey to Cars。如何解决?
【问题讨论】:
-
您的模型中有一些模棱两可的地方:是否可以为许多汽车重复使用相同的细节?如果是,则不应使用内联,因为在修改汽车的详细信息时,它将更改所有使用它的汽车的详细信息。如果不是,解决方案是在 Detail 模型中使用 ForeignKey 指向 Car 模型。