python - Django admin - TabularInline - display only a few objects from other model -
example models:
class book(models.model): types = ( (0, 'sci-fi') (1, 'biography') ) title = models.charfield(...) book_type = models.charfield(max_length=1, choices=types) class connect(models.model): book1 = models.foreignkey(book, related_name='book_1') book2 = models.foreignkey(book, related_name='book_2')
i want 1 think, display connect tabularinline in book, show connect book1__book_type = 0
i try this:
class connectformset(baseinlineformset): def get_queryset(self): if not hasattr(self, '_queryset'): qs = super(connectionformset, self).get_queryset().filter('book1__book_type':0) self._queryset = qs return self._queryset class inlineconnectn(admin.tabularinline): fk_name = 'book1' model = connect = 0 formset = connectformset
but it's not working want. still connections visible in list of connect in tabularinline.
works save connect (only connect book1__book_type = 0 saved).
formfield_for_foreignkey
should want:
class inlineconnectn(admin.tabularinline): def formfield_for_foreignkey(self, db_field, request, **kwargs): if db_field.name == "book1": kwargs["queryset"] = foo.objects.filter(book1__book_type=1) return super(inlineconnectn, self).formfield_for_foreignkey(db_field, request, **kwargs)
Comments
Post a Comment