use*_*169 10 python django admin
我正在尝试list_editable使我的所有字段都可以在同一页面上编辑。但除非我也有一些东西,否则我list_display_links会出错。我没有任何未使用的字段放在那里的问题。我可能在某处误解了一个概念。
我所做的就是在模型中创建一个“虚拟”字段:dummy = None。这不仅笨拙而且可能是错误的 - 而且还会导致虚拟字段出现在我的管理员中。
我究竟做错了什么?我尝试阅读文档,但找不到解决问题的方法。我想以“正确的方式”解决这个问题,无论那是什么。
这是我的代码:
模型.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
...
Run Code Online (Sandbox Code Playgroud)
管理文件
...
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',)
...
Run Code Online (Sandbox Code Playgroud)
use*_*169 11
我现在知道了。出于某种原因,官方文档没有和我一起点击,但是阅读它:http : //django-suit.readthedocs.org/en/latest/sortables.html
总结一下:
list_display - 是哪些字段将出现在管理页面中
list_editable- 用于编辑哪些字段而无需在“编辑”页面中正式打开它们。您基本上可以直接在线编辑它们。非常棒。
list_display_links-list_display必须至少有一项来自编辑页面的链接。此项目也不能在,list_editable否则它不能作为链接。(脸掌)
这就是我最终修改文件的方式:
模型.py
class Slider(models.Model):
...
link = "Edit"
...
Run Code Online (Sandbox Code Playgroud)
管理文件
class SliderAdmin(admin.ModelAdmin):
...
list_display = (
'slider_title', 'slider_text', 'slider_order', 'link',)
list_display_links = ('link',)
list_editable = ('slider_title', 'slider_text', 'slider_order',)
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1838 次 |
| 最近记录: |