Gra*_*GTO 4 django django-models django-admin
我有一个博客,我发表了很多文章。每篇文章都有一个发表日期,有时我不得不编辑这个日期。一切都在 Django 管理面板上运行,自从我决定在我的 admin.py 中添加 DateTimeField 以来,我从未遇到过任何 500 错误。
问题是,Django 无法编辑 DateTimeField 并返回:
内部服务器错误:/admin/wall/articles/62/change/
FieldError at /admin/wall/articles/62/change/ 'date' 不能为文章模型表单指定,因为它是一个不可编辑的字段。检查类 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
Run Code Online (Sandbox Code Playgroud)
管理文件
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)
Run Code Online (Sandbox Code Playgroud)
小智 13
auto_now_add=True使该字段不可编辑。您应该禁用auto_now_add( auto_now_add=False) 并自己实现该行为(例如,在save()Articles 的方法中self.date = timezone.now())。
关于命名的一点说明:你应该以单一形式命名你的模型,而不是复数(文章而不是文章)
| 归档时间: |
|
| 查看次数: |
4242 次 |
| 最近记录: |