这里是模型定义:Django的:多对多在线管理视图错误
class ItemBrand(models.Model):
name = models.CharField(max_length = 30, unique = True)
def __unicode__(self):
return self.name
class WantedItem(models.Model):
name = models.CharField(max_length = 120)
description = models.TextField()
created = models.DateTimeField(auto_now = False, auto_now_add = True)
expires = models.DateTimeField(auto_now = False, auto_now_add = False)
type = models.ForeignKey(ItemType, related_name = "type wanted")
GENDER_CHOICES = (
(1, 'Male'),
(2, 'Female')
)
gender = models.IntegerField(choices = GENDER_CHOICES)
brands = models.ManyToManyField(ItemBrand, related_name = "wantedbrands", symmetrical = False)
colors = models.ManyToManyField(ItemColor)
sizes = models.ManyToManyField(ItemSize)
creator = models.ForeignKey(User, related_name = "wishlist creator")
def __unicode__(self):
return self.name
这里是AdminModel代码:
class BrandsInline(admin.TabularInline):
model = WantedItem.brands.through
class WantedItemAdmin(admin.ModelAdmin):
list_display = ('name', 'created', 'expires', 'type', 'gender', 'creator')
search_fields = ('name', 'description')
list_filter = ('created', 'brands',)
ordering = ('-created',)
inlines = [
BrandsInline,
]
exclude = ('brands',)
这是从Django文档拉到基本上是正确的,而这里的错误我得到:
'ReverseManyRelatedObjectsDescriptor'对象没有属性'through'
我完全丧失了......任何想法?即使我从字面上创建链接器表并在模型中设置“through”属性,我也会得到相同的错误。
残破?
这是“纠正”的代码,你已经试图解决这个问题?正如我所看到的,WantedItem.brands是指ItemBrand,并且没有通过属性(没有任何反向列出) – 2009-12-02 01:05:48
请修复空白。 – Alasdair 2009-12-02 01:34:43
@Christian P. - 这也是我最初关于'through'属性的想法,但事实证明这是用内联替换多对多小部件的方法。请参阅http://docs.djangoproject.com/en/dev/ref/contrib/admin/#working-with-many-to-many-models – Alasdair 2009-12-02 02:34:16