Voici les définitions du modèle:Django: ManyToMany erreur Inline vue admin
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
Voici le code 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',)
Ceci est tiré essentiellement droite de la documentation de Django, et voici l'erreur Je reçois:
objet 'ReverseManyRelatedObjectsDescriptor' n'a pas d'attribut 'à'
Je suis à perte totale ... des idées? Même si je crée littéralement une table de liens et que je mets l'attribut "through" dans le modèle, j'obtiens la même erreur.
Broken?
Ce code "corrigé" vous permet-il de résoudre le problème? Comme je le vois, WantedItem.brands se réfère à ItemBrand et qui n'a pas de propriété à travers (pas non plus indiqué pour inverser) –
S'il vous plaît corriger les espaces. – Alasdair
@Christian P. - c'était aussi ma première réflexion sur la propriété 'through', mais il s'avère que c'est la façon de remplacer les widgets many-to-many par des inlines. Voir http://docs.djangoproject.com/en/dev/ref/contrib/admin/#working-with-many-to-many-models – Alasdair