Je veux utiliser raw_id_fields sur une relation ManyToMany dans l'admin, et je veux que chaque objet associé apparaisse sur sa propre ligne (par opposition à une liste séparée par des virgules dans un seul champ, qui est le comportement par défaut). A la suite des exemples repérés dans la nature, il semble que je devrais être en mesure de le faire:raw_id_fields et ManyToMany dans Django admin
# models.py
class Profile(models.Model):
...
follows = models.ManyToManyField(User,related_name='followees')
# admin.py
class FollowersInline(admin.TabularInline):
model = Profile
raw_id_fields = ('follows',)
extra = 1
class ProfileAdmin(admin.ModelAdmin):
search_fields = ('user__first_name','user__last_name','user__username',)
inlines = (FollowersInline,)
admin.site.register(Profile,ProfileAdmin)
Mais qui génère l'erreur:
<class 'bucket.models.Profile'> has no ForeignKey to <class 'bucket.models.Profile'>
Je ne comprends pas ce que je fais mal ici . Merci pour vos suggestions
Merci Arie, mais qui me donne: 'FollowersInline.raw_id_fields' VISE champ « suit 'qui manque dans le modèle' Profile_follows '. suit existe en tant que champ sur le profil. – shacker
Mmmh, probablement je ne comprends pas complètement ce que vous essayez de faire: Vous essayez de relier 'Followers' et' Profiles', n'est-ce pas? D'après ce que je comprends, vous devriez être capable d'omettre 'raw_id_fields = ('suit',)' sur votre 'InlineAdmin'. Vous pouvez ensuite utiliser les formulaires en ligne pour associer 'Followers' (' User') à 'Profiles'. – arie
Les suiveurs ne sont pas un modèle distinct - 'follows' est le nom d'un champ m2m sur le modèle Profile. Je peux omettre suit de ProfileAdmin, mais quand j'ajoute inlines = (FollowersInline,) à ProfileAdmin, j'obtiens l'une des deux erreurs décrites ci-dessus, selon que j'utilise 'model = Profile' ou 'model = Profile.follows.through' . Merci. – shacker