Я работаю над Django 2.2.10 и Python 3.5. Я хотел использовать функцию, которая была представлена в Django 2, то есть использовать Select2 для фильтрации списков из другой модели, которая имеет обратную связь с моделью, которую я перечисляю, которая отображается как Inline в Django Admin.
Позвольте мне объяснить.
У меня есть две модели, подобные этой:
models.py
class Books(models.Model):
name = models.CharField(max_length=40)
pages = models.PositiveSmallIntegerField(default=0)
class Members(models.Model):
member_name = models.CharField(max_length=40)
member_years = models.PositiveSmallIntegerField(default=0)
class BorrowedBooks(models.Model):
book = models.ForeignKey(Books, on_delete=models.CASCADE)
member = models.ForeignKey(Members, on_delete=models.CASCADE)
date_borrowed = models.DateField()
date_returned = models.DateField()
admin.py
class BorrowedBooksInline(admin.TabularInline)
model = BorrowedBooks
extra = 0
fields = ['book', 'member', 'date_borrowed', 'date_returned']
search_field = ['book']
class BooksAdmin(admin.ModelAdmin):
model = Books
list_display = ['name', 'pages']
class MembersAdmin(admin.ModelAdmin):
model = Members
inlines = [BorrowedBooksInline, ]
list_display = ['member_name', 'member_years']
autocomplete_fields = ['borrowedbooksinline__book']
search_field = ['member_name', 'member_years']
Я не все скопировал, потому что это было бы слишком много. По сути, я хотел бы иметь возможность фильтровать элементы, которые заимствовали книгу в определенный момент времени, но две модели связаны не напрямую, а через третью модель.
В настоящее время все работает отлично, но фильтр не отображается.
Есть предложения?