gpt4 book ai didi

Django DateTimeField 不可编辑

转载 作者:行者123 更新时间:2023-12-03 23:29:05 26 4
gpt4 key购买 nike

我有一个博客,我发表了很多文章。每篇文章都有一个发表日期,有时我不得不编辑这个日期。一切都在 Django 管理面板上运行,自从我决定在我的 admin.py 中添加 DateTimeField 以来,我从未遇到过任何 500 错误。

问题是,Django 无法编辑 DateTimeField 并返回:

Internal Server Error: /admin/wall/articles/62/change/

FieldError at /admin/wall/articles/62/change/ 'date' cannot be specified for Articles model form as it is a non-editable field. Check fields/fieldsets/exclude attributes of class ArticlesAdmin.



我不明白为什么它不起作用。

楷模 :
class Articles(models.Model):
title = models.CharField(max_length=100, null=False, verbose_name="Titre")
description = models.TextField(max_length=500, null=False, verbose_name="Description pour les partages sur les réseaux sociaux")
subtitle = models.TextField(max_length=300, null=True, verbose_name="Sous-titre")
text = RichTextUploadingField()
tag = models.ManyToManyField(Tag, verbose_name="Tag")
subcategory = models.ForeignKey(SubCategory, verbose_name="Sous-catégorie", blank=True, null=True)
image = models.FileField(upload_to='media/articles/', validators=[validate_file_extension], blank=True, null=True, verbose_name="Image de présentation")
image_description = models.CharField(max_length=100, null=True, verbose_name="Description pour cette image")
image_legende = models.CharField(max_length=100, null=True, verbose_name="Légende pour cette images")
author = models.ForeignKey(User, verbose_name="Auteur")
published = models.BooleanField(default=True, verbose_name="Publié")
date = models.DateTimeField(auto_now_add=True, auto_now=False, verbose_name="Date de création")
update = models.DateTimeField(auto_now=True, verbose_name="Dernière modification")


def get_absolute_url(self):
return reverse('read', kwargs={'post':self.id, 'slug':slugify(self.title)})

def __str__(self):
return self.title

管理文件
class ArticlesAdmin(admin.ModelAdmin):
list_display = ('date', 'title', 'author', 'published', 'update')

fieldsets = (
('Général', {
'fields': ('title', 'author', 'published', 'tag')
}),
('Date de publication', {
'fields': ('date',)}),
('Choisir une image de présentation (700px de largeure et 320px de hauteur', {
'fields': ('image',)}),
('Description de l\'image', {
'fields': ('image_description',)}),
('Légende de l\'image', {
'fields': ('image_legende',)}),
('Sous-titre de l\'article', {
'fields': ('subtitle',)}),
('Contenu de l\'article', {
'fields': ('text', 'description')}),
)

admin.site.register(Articles, ArticlesAdmin)

最佳答案

auto_now_add=True 使该字段不可编辑。
您应该禁用 auto_now_add ( auto_now_add=False ) 并自己实现该行为(例如,在文章 save()self.date = timezone.now() 方法中)。

关于命名的一点说明:你应该以单一形式命名你的模型,而不是复数(文章而不是文章)

关于Django DateTimeField 不可编辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53955819/

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