标签: django-admin

如何显示django类别名称而不是Category对象(一)

问题就在这里。我在我的 django 博客中添加了一个类别部分。当我尝试添加新类别时,用户本地化存在问题。当我添加类别时,例如django,它显示如下: image 1

在管理面板中相同: 图像2

但我实际上添加了一个正常的类别名称: 图片 3

有趣的是,当我category在网络应用程序中发布内容后,它看起来很正常: 图 4

我想要这样的东西,也许有人有解决方案:想要的结果

一些代码:

模型.py

from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User
from django.urls import reverse

class Post(models.Model):
    title = models.CharField(max_length=200)
    content = models.TextField()
    date_posted = models.DateTimeField(default=timezone.now)
    author = models.ForeignKey(User, on_delete=models.CASCADE)
    categories = models.ManyToManyField('Category', related_name='posts')
    image = models.ImageField(upload_to='images', default="images/None/no-img.jpg")



    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse('post-detail', kwargs={'pk': self.pk})


class Category(models.Model):
    name = models.CharField(max_length=20)
Run Code Online (Sandbox Code Playgroud)

视图.py

from django.shortcuts import render, …
Run Code Online (Sandbox Code Playgroud)

python django django-models django-admin django-views

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

员工用户无法登录 django 管理面板

我正在尝试在我的 django 应用程序中创建自定义用户模型。但是每当我尝试这样做时,我都无法使用管理面板中的“超级用户”创建的“工作人员用户”登录。它说:

“请输入员工帐户的正确用户名和密码。请注意,这两个字段都可能区分大小写。”

应用名称:后台

后端/models.py

from django.db import models
from django.contrib.auth.models import (
    AbstractBaseUser,
    BaseUserManager
)
# Create your models here.
class UserManager(BaseUserManager):
    
    def create_user(
        self,
        username = None,
        email = None,
        password = None,
        is_active = True,
        is_staff = False,
        is_admin = False
    ):
        if not username:
            raise ValueError("Users must have a username")
        if not password:
            raise ValueError("Users must have a password")
        if not email:
            raise ValueError("Users must have a email")
        
        user_obj = self.model(
            username = username …
Run Code Online (Sandbox Code Playgroud)

python django django-models django-admin django-authentication

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

Django admin inlines - 如何从创建/更新表单中删除空记录

我正在使用 StackedInline 在 Django 管理表单中添加相关对象(关系是一对多)。问题是,在创建新对象时,它默认呈现三个空的内联表单,如下例所示:

在此输入图像描述

我想要的是仅渲染“添加”按钮,因为相关对象非常罕见,以至于大多数记录都没有这些(或至少单个空记录),并且我的相关对象比图片上的对象大得多。它应该类似于这个例子:

在此输入图像描述

我怎样才能做到这一点?

django django-admin

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

如何在 django 管理站点的注册模型中添加自定义按钮

任何人都可以指导我如何在删除按钮旁边放置一个按钮的正确方向这里?我想在它旁边放一个确认和拒绝按钮,当我单击它时,它会向用户发送一封电子邮件,表明他/她的申请被接受或拒绝。我在网上搜索了解决方案,并在这里阅读了一些类似的问题,但我不确定这些是否是正确的选择。

django django-admin

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

获取 127.0.0.1 拒绝连接。当尝试在 django admin 中添加新的 fk 时

您好,我总是收到 127.0.0.1 拒绝连接的消息。当我尝试在 django admin 中使用 + 在现有模型中添加新的 fk 时,弹出窗口出错。我正在使用“admin_interface”,以及一些与已安装应用程序中列出的 django-admin 主题相关的其他软件包,这就是我收到此错误的原因。

我尝试在setting.py中的ALLOWED_HOSTS中传递“*”,

当我在 google chrome 浏览器中尝试该过程时,它显示为我在图像 1 中共享的内容,但是当我尝试对 firefox 执行相同操作时,它在第二张图像中共享。

我的setting.py文件

import os
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))


SECRET_KEY = ''

DEBUG = True

ALLOWED_HOSTS = ['*']




INSTALLED_APPS = [
    # 'grappelli',
    "admin_interface",
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'mdeditor',
    "colorfield",
    'drf_yasg',
    "rest_framework",
    'django_filters',
    "corsheaders",
    "storages",
    'rest_framework_swagger',
    'authentication',
    'mails',
    'authors',
    'book_store',
    'institude_home_page',
]

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

ROOT_URLCONF = 'vani_prakashan.urls'

TEMPLATES = [
    { …
Run Code Online (Sandbox Code Playgroud)

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

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

我希望 Django 中的 Staffuser 看不到任何超级用户

现在我已经应用了这段代码

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User

class MyUserAdmin(UserAdmin):
    def get_fieldsets(self,request,obj=None):
        if not obj:
            return self.add_fieldsets
        
        if request.user.is_superuser:
            perm_fields = ('is_active','is_staff','is_superuser','groups','user_permissions')

            return [(None, {'fields': ('email', 'password')}),
                    ('Personal info', {'fields': ('first_name', 'last_name')}),
                    ('Permissions', {'fields': ('is_active', 'is_staff', 'is_superuser', 'groups', 'user_permissions')}),
                    ('Important dates', {'fields': ('last_login', 'date_joined')}),
                    ('Contact info', {'fields': ('contact_no',)})]
        else:
            perm_fields = ('is_active','is_staff')
        
            return [(('Creds'),{'fields':('username','password')}),
                    (('Personal info'),{'fields':('first_name','last_name','email')})]

admin.site.unregister(User)
admin.site.register(User,MyUserAdmin)
Run Code Online (Sandbox Code Playgroud)

当我以员工用户身份登录时,所有员工用户都可以看到超级用户 在此输入图像描述

但我希望员工用户看不到任何超级用户。因此在这种情况下,staffuser 只能查看 1 个“新”用户和“admin”用户(超级用户),应隐藏

我怎样才能做到这一点 ?

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

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

Django - 具有伴随存储字段的自定义虚拟模型字段

我想要一个ConfirmationField字段类型.我希望这个字段像布尔字段一样工作.我不需要将此信息存储在数据库中,而是希望将确认日期存储在单独的字段中.

class MyModel(models.Model):
    confirmation = ConfirmationField()


m = MyModel()
m.confirmation # False
m.confirmation_timestamp # None

m.confirmation = True
m.save()

m.confirmation_timestamp # datetime object


m.confirmation = False
m.save()

m.confirmation_timestamp # None again
Run Code Online (Sandbox Code Playgroud)

我需要将两个字段都作为Field实例,我需要能够在Admin中使用它们.

我已阅读文档并检查代码,ForeignKey使用以下代码更改其数据库列名称:

def get_attname(self):
    return '%s_id' % self.name
Run Code Online (Sandbox Code Playgroud)

但我无法弄清楚如何使用其余代码作为示例.看来我的目标并不需要太多的复杂性.

ImageField保存模型时,我还发现了保存的额外信息:

    if self.field.width_field:
        setattr(self.instance, self.field.width_field, self.width)
    if self.field.height_field:
        setattr(self.instance, self.field.height_field, self.height)
Run Code Online (Sandbox Code Playgroud)

但是我当然不希望confirmation自己存储在数据库中.因为(confirmation_timestamp- > confirmation)None== False<datetime instance>==,我会造成冗余True.

任何指针/想法都表示赞赏.

谢谢.

编辑:目前看来这是不可能的.我最终改变了我的API.这是一个snipplet,让我知道我是如何做到的:

    value …
Run Code Online (Sandbox Code Playgroud)

django django-models django-orm django-admin

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

在django网站中,我想让用户创建与其帐户绑定的其他用户

我想让登录和注册的用户创建他将成为管理员的额外用户帐户.这些帐户将是与创建它们的用户绑定的特殊"下级"帐户.他应该能够添加/修改/删除这些帐户,就像Google应用程序管理员如何管理公司帐户一样(您是普通用户,但也创建/销毁其他用户.)

下级帐户无法创建/修改/删除帐户(除了更改自己的密码和正常的用户行为.)我正在为所有这些帐户使用django auth模型.在不使用任何管理代码的情况下,从我自己定制的网页中访问auth方法添加/修改/删除帐户的好方法是什么?

django django-models django-admin

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

限制管理模型条目

我有一个名为Foo的模型:

class Foo(models.Model):
    name = models.CharField()
    entry = models.DateField()
Run Code Online (Sandbox Code Playgroud)

我有两种类型的用户可以登录管理面板,常规和超级用户.我想禁止编辑/删除超过2天的Foo条目(通过使用输入日期字段),但超级用户可以不受任何限制地进行编辑.我怎样才能做到这一点?谢谢

django django-models django-admin

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

在django admin中覆盖模块标题名称

默认情况下,管理模型按应用进行分组,应用名称位于标题中(帐户,身份验证等).如何在不编写管理模板的情况下覆盖标题中的名称?

django customization django-admin

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