由于后台栏目为多级栏目,某些栏目不能发文章,怎么才能django admin后台ForeignKey只显示终极栏目呢:
from .models import Post, Tag, Categorg
@admin.register(Post)
class PostAdmin(admin.ModelAdmin):
list_display = ['pk', 'title_color','category', 'create_time', 'onclick', 'isgood', 'get_view_url']
def formfield_for_foreignkey(self, db_field, request, **kwargs):
# 复写formfield_for_foreignkey函数,修改显示
if db_field.name == 'category': #判断是否为栏目
kwargs['queryset'] = Categorg.objects.all().order_by('sort', 'fcate', 'pk') #修改queryset
return super(PostAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs) #别少了这步
这里再写个,栏目类别,父栏目只显示一级栏目:
class CategorgAdmin(admin.ModelAdmin):
def formfield_for_foreignkey(self, db_field, request, **kwargs):
if db_field.name == 'fcate':
kwargs['queryset'] = Categorg.objects.filter(class_level=1, ispost=False)
return super(CategorgAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)
发表评论