i have 2 apps: visitors , meetings, linked via manytomany field:
visitors/models.py:
from django.db import models meetings.models import meeting class visitor(models.model): visitor_name = models.charfield(default='name', max_length=128, blank=false, null=false) visitor_meetings = models.manytomanyfield(meeting) def __str__(self): return self.visitor_name meetings/models.py:
from django.db import models team.models import team class meeting(models.model): team_member = models.foreignkey(team) meeting_name = models.charfield(default='name', max_length=128, blank=true, null=true) def __str__(self): return self.meeting_name i know correct way list_display meetings in visitors admin panel here: https://stackoverflow.com/a/18108586/2429989.
however, how can show list_display visitors @ each meeting in meetings admin panel? have tried:
meetings/admin.py:
from django.contrib import admin .models import meeting visitors.models import visitor class meetingadmin(admin.modeladmin): list_display = ['id', 'team_member', 'show_visitors' ] def show_visitors(self, obj): return "\n".join([a.visitor_name in obj.visitor.all()]) admin.site.register(meeting, meetingadmin) this results in 'meeting' object has no attribute 'visitor', going wrong?
the default reverse lookup relation it's obj.tablename_set. in case need use obj.visitor_set.all()
class meetingadmin(admin.modeladmin): list_display = ['id', 'team_member', 'show_visitors' ] def show_visitors(self, obj): return "\n".join([a.visitor_name in obj.visitor_set.all()]) however, can customize name of reverse lookup defining related_name:
class visitor(models.model): visitor_name = models.charfield(default='name', max_length=128, blank=false, null=false) visitor_meetings = models.manytomanyfield(meeting, related_name='visitors') def __str__(self): return self.visitor_name all meeting objects have access visitors. use like:
class meetingadmin(admin.modeladmin): list_display = ['id', 'team_member', 'show_visitors' ] def show_visitors(self, obj): return "\n".join([a.visitor_name in obj.visitors.all()])
Comments
Post a Comment