Django Ограничение выбора в админке
Мне нужно отфильтровать категории которые я могу выбрать в PostAdmin точные которые были подтверждены, как это сделать? в моделях:
class Category(models.Model):
name = models.CharField(max_length=200)
confirmed = models.BooleanField(default=False)
....
def __str__(self):
return self.name
class Post(models.Model):
title = models.CharField(max_length=255)
category = models.ForeignKey(Category, on_delete=models.CASCADE, related_name='category')
...
def __str__(self):
return self.title
в админке:
class PostAdmin(models.ModelAdmin):
list_display = ['title', 'category']
fields = ['title, 'category']
admin.site.register(Post, PostAdmin)
[решено]
class PostAdmin(models.ModelAdmin):
list_display = ['title', 'category']
fields = ['title, 'category']
def formfield_for_foreignkey(self, db_field, request, **kwargs):
if db_field.name == 'category':
kwargs["queryset"] = Category.objects.filter(confirmed=True)
return super().formfield_for_foreignkey(db_field, request, **kwargs)
admin.site.register(Post, PostAdmin)