In django -admin Я использую inline для дочернего объекта. Я ожидаю, что django не покажет дочерние элементы, которые уже назначены выбранному родителю.
Книги, Читатели, Обзоры
Когда выбран READER1, во встроенном разделе он не должен показывать BOOK1 который уже был рассмотрен читателем. В настоящее время django снова показывает весь список книг.
from django.db import models
class Book(models.Model):
BookName = models.CharField(max_length=20)
def __str__(self):
return self.BookName
class Reader(models.Model):
ReaderName = models.CharField(max_length=20)
class Review(models.Model):
Book_No = models.ForeignKey(Book, on_delete=models.CASCADE,null=False,blank=False)
Reader_No = models.ForeignKey(Reader, on_delete=models.CASCADE,null=False,blank=False)
Note = models.CharField(max_length=20)
from django.contrib import admin
from .models import Book,Reader,Review
class ReaderTopReviewInline(admin.TabularInline):
model = Review
fieldsets = [(None,{'fields': ['Book_No','Reader_No','Note']}),]
class ReaderAdmin(admin.ModelAdmin):
list_display = ['ReaderName']
fieldsets = [(None,{'fields': ['ReaderName']}),]
inlines = [ReaderTopReviewInline]
admin.site.register(Reader,ReaderAdmin)
на основе документации Я пытаюсь использовать опцию formfield_for_foreignkey. но в admin.py на этом этапе я не знаю, как получить PRIMARYKEY объекта PARENT, в этом случае мне нужно знать, какой READER скрыт для фильтрации его уже рецензированных книг из списка.
или я что-то упускаю из виду? 1015 * здесь? Спасибо