Хотелось бы узнать, есть ли способ отобразить в моем разделе администратора номер участника, которого автор в разделе администратора Автор называет num_party? Мне нужно пройти через модель и подсчитать, сколько вечеринок у автора, это легко сказать, но нелегко сделать, чтобы кто-нибудь мог мне помочь?
Вот моя модель партии:
class Party(models.Model):
title = models.CharField(max_length=200)
place = models.ForeignKey('Place', on_delete=models.CASCADE, null=True)
author = models.ForeignKey('Author', on_delete=models.SET_NULL, null=True)
date = models.DateField(null=True, blank=True)
genre = models.ManyToManyField(Genre, help_text='Select a genre for this partty')
ticket_available = models.IntegerField()
ticket_price = models.PositiveIntegerField(default=5)
language = models.ManyToManyField('Language')
insider_secret = models.ManyToManyField('InsiderSecret')
#benef = models.IntegerField(default=5)
def get_benef(self):
return self.ticket_available * self.ticket_price
benef = property(get_benef)
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse('book-detail', args=[str(self.id)])
def display_genre(self):
return ', '.join(genre.name for genre in self.genre.all()[:3])
display_genre.short_description = 'Genre'
def display_secret(self):
return ', '.join(insider_secret.secret for insider_secret in self.insider_secret.all()[:3])
display_secret.short_description = 'Insider Secret'
class Author(models.Model):
"""Model representing an author."""
username = models.CharField(max_length=100, help_text="How do you want to be call by people as organisor ? ", default="Bestpartyorganisorintown")
first_name = models.CharField(max_length=100)
last_name = models.CharField(max_length=100)
date_of_birth = models.DateField(null=True, blank=True)
class Meta:
ordering = ['last_name', 'first_name']
def get_absolute_url(self):
"""Returns the url to access a particular author instance."""
return reverse('author-detail', args=[str(self.id)])
def __str__(self):
"""String for representing the Model object."""
return f'{self.username}'
Вот мой код администратора:
@admin.register(Party)
class PartyAdmin(admin.ModelAdmin):
list_display = ('title', 'author', 'display_genre', 'ticket_price','ticket_available','display_secret','benef')
readonly_fields = ('benef',)
class AuthorAdmin(admin.ModelAdmin):
list_display = ('username', 'first_name', 'date_of_birth')
fields = [('first_name', 'last_name'),'username', 'date_of_birth']
# Register the admin class with the associated model
admin.site.register(Author, AuthorAdmin)
class InsiderSecretAdmin(admin.ModelAdmin):
list_display = ('secret',)