标签: django-admin

使 Django 不插入某些字段

我有一个针对 postgresql 数据库表的 Django 模型,我希望 Django 在对象创建期间不要插入 field_3 作为 DB 应该填写的时间戳字段。

class AbcModel:
  model_id = models.AutoField(primary_key=True)
  field_1 = models.BigIntegerField()
  field_2 = models.TextField()
  field_3 = models.DateTimeField(blank=True, null=True)

  class Meta:
    managed = False
    db_table = 'abc_table'
Run Code Online (Sandbox Code Playgroud)

对应的表模式

abc_table

  • model_id 整数不为空默认
    nextval('command_running_command_id_seq'::regclass)
  • field_1 整数不为空
  • field_2 文本不为空
  • field_3 时间戳不带时区默认 now()

我试过的 - 我读到应该调用 Model.save(update_fields=[list of fields to be updated])。

class AbcModel(models.Model):
    def save(self, *args, **kwargs):
        u_fields = ['field_1', 'field_2']
        super(CommandRunning, self).save(update_fields=u_fields)
Run Code Online (Sandbox Code Playgroud)

但我得到一个例外

Cannot force an update in save() with no primary key.
Run Code Online (Sandbox Code Playgroud)

如果我在 update_fields …

postgresql django-models django-admin python-3.x django-1.9

1
推荐指数
1
解决办法
1007
查看次数

在 django admin 中过滤对象

我想在 django admin 中管理对象,但我希望只能编辑具有某些属性特定值的对象。确切地说,我现在在 admin.py 中有:

class UnitAdmin(admin.ModelAdmin):
    list_display = ('type', 'name', 'result_file')
    list_filter = ['type']
admin.site.register(Unit, UnitAdmin)
Run Code Online (Sandbox Code Playgroud)

而且我只想管理带有type='SomeSpecificType'. 我看到了一些覆盖 SimpleListFilter 类的东西,但我看不出这在这里是如何应用的。

python django django-admin

1
推荐指数
1
解决办法
1964
查看次数

Django-admin 不允许我修改用户权限和组

通过管理界面编辑用户模型时,我看到的是: 这就是我希望看到的: 第二个允许我修改用户权限,第一个不允许。

我在第一个屏幕截图上使用的 User 模型继承自AbstractUser并按以下方式注册:

from django.contrib import admin

import accounts.models


admin.site.register(accounts.models.User)
Run Code Online (Sandbox Code Playgroud)

在我的设置中:

DEBUG = True

AUTH_USER_MODEL = 'accounts.User'
Run Code Online (Sandbox Code Playgroud)

可能是什么问题?如何从第一个屏幕截图到第二个屏幕截图?

django django-admin

1
推荐指数
1
解决办法
845
查看次数

Django admin:如果列表中只有一个,则重定向到对象更改页面

我正在将 Django 用于应用程序,并想知道管理中的一个选项。如果列表视图中只存在一个对象,django 管理员是否可以重定向到对象的详细信息页面?

例如,如果只有这个对象存在: 在此处输入图片说明

立即重定向到此对象的更改视图,而无需用户单击该对象。

我没有使用任何自定义视图。经过 2 个小时的搜索,我找不到任何解决方案。

谢谢!

python django django-admin

1
推荐指数
1
解决办法
2328
查看次数

图片上传字段在 django admin 中有效,但在模板中无效

嗨,我创建了一个通用表单来插入数据,一切正常,但图像无法以模板形式上传,但是当我在管理中上传图像时,它可以完美运行,并且图像显示在模板页面上。

这是我的代码:

视图.py:

class ArticleCreate(CreateView):
model = article
fields = ['title', 'cat', 'img', 'disc', 'tags']
Run Code Online (Sandbox Code Playgroud)

模型.py:

class article(models.Model):
   title = models.CharField(max_length=250)
   disc = models.TextField(verbose_name="Discription")
   cat = models.ForeignKey(category, verbose_name="Category")
   tags = models.ManyToManyField(Tag, blank=True)
   img = models.ImageField(blank=True, verbose_name='Image')
Run Code Online (Sandbox Code Playgroud)

设置.py:

STATIC_URL = '/static/'

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
Run Code Online (Sandbox Code Playgroud)

模板页面:

{% for list in data %}
 {{ list.title }}
{% if list.img %}
  {{ list.img.url }}
{% endif %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能上传带有通用格式的图像?

python forms generics django django-admin

1
推荐指数
1
解决办法
1316
查看次数

如何覆盖 django admin LogEntry 模型

我想更改用于默认 LogEntry 类的模型,以便它在数据库中为属性“object_id”创建一个 varchar 而不是一个 clob

原始模型定义在

django/contrib/admin/models.py

class LogEntry(models.Model):
    action_time = models.DateTimeField(_('action time'), auto_now=True)
    user = models.ForeignKey(settings.AUTH_USER_MODEL)
    content_type = models.ForeignKey(ContentType, blank=True, null=True)
    object_id = models.TextField(_('object id'), blank=True, null=True)
    object_repr = models.CharField(_('object repr'), max_length=200)
    action_flag = models.PositiveSmallIntegerField(_('action flag'))
    change_message = models.TextField(_('change message'), blank=True)
Run Code Online (Sandbox Code Playgroud)

我想将 object_id 的定义更改为

object_id = models.Charfield(_('object id'), max_length=1000,  blank=True, null=True)
Run Code Online (Sandbox Code Playgroud)

我知道,如果有人在大于 varchar(1000) 的实体上定义主键,这可能会导致问题,但我不希望实体的 PK 定义为这样,因此我对限制感到满意.

这将大大提高访问历史日志时的查询效率。

我真的不想破解实际的模型定义,但我无法找到如何优雅地覆盖模型定义。

有任何想法吗?

python django django-models django-admin

1
推荐指数
1
解决办法
2059
查看次数

Django 选择的用户权限未显示在管理页面中

我尝试使用AbstractUser扩展我项目中的默认 Django 用户 。在 Django 管理员中,我看不到选择的用户权限。

在此处输入图片说明

这是我的作品

from django.db import models
from django.contrib.auth.models import AbstractUser

class ExtendedUser(AbstractUser):
    bio = models.TextField(max_length=500, blank=True)
    birth_date = models.DateField(null=True, blank=True)
Run Code Online (Sandbox Code Playgroud)

之后我在admin.py添加我的扩展用户

class ExtendedUserAdmin(admin.ModelAdmin):
    pass


admin.site.register(ExtendedUser, ExtendedUserAdmin)
Run Code Online (Sandbox Code Playgroud)

还要在settings.py 中添加 AUTH_USER_MODEL

AUTH_USER_MODEL = '_aaron_user.ExtendedUser'
Run Code Online (Sandbox Code Playgroud)

python django django-admin python-3.x

1
推荐指数
1
解决办法
1845
查看次数

Django admin 如何以百分比显示进度条

在 Django 内置管理站点中,如何在“更改列表”页面和“更改表单”页面中将进度条显示为字段?

html python django-admin

1
推荐指数
1
解决办法
1516
查看次数

如何通过javascript从管理页面检索Django模型ID

假设我有一个像这样的 Django 模型。

class Car(models.Model):
    speed = models.IntegerField()
    color = models.CharField(max_length=120)

Run Code Online (Sandbox Code Playgroud)

我通过管理员在管理员中注册了它

admin.site.register(Car)
Run Code Online (Sandbox Code Playgroud)

我想为管理站点对象视图添加自定义 JS 按钮,它将警告汽车模型实例的颜色值。所以当我按下它时,我会得到类似“ID 为13的汽车是红色的”这样的信息

如何通过 JavaScript 获取对象的 id 和颜色字段的值?

javascript python django django-admin reactjs

1
推荐指数
1
解决办法
785
查看次数

在 Django Admin 中创建用户时,它不会散列密码吗?

我正在尝试使用 Django REST 框架从我的 Django 管理员(该项目是一个休息 API)创建一个用户。

管理文件

class UserFrame(UserAdmin):
    list_display = ["name", "email", "date_of_creation", "is_active"]
    list_editable = ["is_active"]
    
admin.site.register(models.AccountProfile, UserFrame) 
Run Code Online (Sandbox Code Playgroud)

我得到的错误: 为 AccountProfile 指定的未知字段 (s) (date_joined, last_name, first_name)

AccountProfile 是我的自定义用户模型,它继承自 AbstractBaseUser 并有一个 BaseUserManager。

django django-models django-admin django-rest-framework

1
推荐指数
1
解决办法
177
查看次数