Django 1.11 - 无法在管理面板中编辑我的模型

Posted

技术标签:

【中文标题】Django 1.11 - 无法在管理面板中编辑我的模型【英文标题】:Django 1.11 - Can't edit my model in Admin panel 【发布时间】:2017-05-25 14:14:51 【问题描述】:

请告诉我为什么我不能在 Django 的管理面板中修改我的模型?

models.py:

from django.db import models

# Create your models here.
class Games(models.Model):
    guid = models.CharField(max_length=100, unique=True, null=False, verbose_name="GUID")
    title = models.CharField(max_length=100, null=False, verbose_name="Titre")
    logo = models.CharField(max_length=100, null=True, blank=True, verbose_name="Logo")
    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")

admin.py

from django.contrib import admin
from .models import Games

# Register your models here.

class GamesAdmin(admin.ModelAdmin):
    list_display = ('logo', 'title', 'guid', 'date', 'update')
    list_filter = ('title', 'guid')
    date_hierarchy = 'update'
    ordering = ('date', )
    search_field = ('guid', 'title')

admin.site.register(Games, GamesAdmin)

当我进入管理面板时,我可以看到我模型的所有字段,我还可以添加一个新字段。但是当我想编辑字段时,没有可点击的链接...

谢谢!

【问题讨论】:

通常第一列是可点击的 哦,好的,我明白了,我的第一列是空的。你知道如何让所有列都可以点击吗?谢谢 【参考方案1】:

只需将“logo”和“title”或“logo”的位置与任何其他非空列交换即可。

list_display = ('logo', 'title', 'guid', 'date', 'update')

【讨论】:

【参考方案2】:

默认情况下,第一列应该是可点击的,并带您进入视图以更改对象。即使该列是空的,Django 也会添加一个可点击的不间断空格 ( ),尽管在将鼠标悬停在它上面并且光标发生变化之前您可能不会发现它。

您可以设置link_display_links 并包含一个不为空的字段。

class GamesAdmin(admin.ModelAdmin):
    list_display = ('logo', 'title', 'guid', 'date', 'update')
    list_display_links = ('title',)

或者,您可以对list_display 重新排序,以使第一列不为空。

要使所有列都可点击,您可以设置list_display_links = list_display

【讨论】:

感谢您的帮助

以上是关于Django 1.11 - 无法在管理面板中编辑我的模型的主要内容,如果未能解决你的问题,请参考以下文章

Django 1.11 使用来自应用程序的模板作为管理模板

如何在django管理面板中访问Google Analytics?

在 Django 1.11 中使用 MySQL 连接器/Python 时出错

Django 1.6 到 1.11 Admin.py 迁移

Django 1.6 管理面板自定义

扩展 Django 1.11 用户模型