gpt4 book ai didi

python - 无法在不导致错误的情况下列出我在 list_editable 中的所有字段

转载 作者:太空宇宙 更新时间:2023-11-03 10:47:27 24 4
gpt4 key购买 nike

我正在尝试使用 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

...

管理员.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',)

...

最佳答案

我现在明白了。出于某种原因,官方文档并没有让我满意,但是阅读这篇文章确实如此: 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"
...

管理员.py

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',)
...

关于python - 无法在不导致错误的情况下列出我在 list_editable 中的所有字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22184974/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com