我尝试使用list_editable
使我的所有字段在同一页面上可编辑。但是除非我在list_display_links
中也有一些东西,否则我会得到错误。问题是我没有任何未使用的字段可以放在那里。我可能在某处误解了一个概念。
我所做的是在模型中创建一个"虚拟"字段:dummy = None
。这不仅是笨重的,可能是错误的-但它也导致虚拟字段出现在我的管理。
我做错了什么?我试着阅读文档,但我找不到解决问题的方法。我想用"正确的方法"来解决这个问题,不管它是什么。
下面是我的代码:
models.py
...
class Slider(models.Model):
slider_title = models.CharField(max_length=20)
slider_text = models.TextField(max_length=200)
slider_order = models.PositiveSmallIntegerField(
default=1, blank=True, null=True, choices=[(1, 'first'),
(2, 'middle'), (3, 'last')])
dummy = None
def clean(self):
validate_only_three_instances(self)
def __str__(self):
return self.slider_title
...
admin.py
...
class SliderAdmin(admin.ModelAdmin):
# remove "add" button
def has_add_permission(self, request):
return False
fieldsets = [
(None, {'fields': ['slider_title']}),
(None, {'fields': ['slider_text']}),
(None, {'fields': ['slider_order']}),
]
list_display = (
'slider_title', 'slider_text', 'slider_order', 'dummy',)
list_display_links = ('dummy',)
list_editable = ('slider_title', 'slider_text', 'slider_order',)
...
2条答案
按热度按时间ymdaylpp1#
我现在明白了,由于某种原因,官方文件并没有让我产生共鸣,但是阅读了这篇文章之后,我还是产生了共鸣:http://django-suit.readthedocs.org/en/latest/sortables.html
总结一下:
list_display
-是将显示在管理页面中的字段list_editable
-是哪些字段可以被编辑,而不需要在“编辑”页面中正式打开它们。你基本上可以直接编辑它们。非常棒。list_display_links
-至少一个来自list_display
的项目必须作为到编辑页的链接.这个项目不能也是在list_editable
否则它不能作为一个链接.(facepalm)这是我如何结束修改我的文件:
models.py
admin.py
zengzsys2#
您最好在
admin.py
中创建一个虚拟列,如下所示,而不是在models.py
中创建一个虚拟字段,以便在Django Admin中编辑所有列:您可以看到my post正在解释有关它的更多详细信息。