标签: django-admin

Django admin:make field可以添加但不能编辑

我有一个类似的模型:

class Product(models.Model):
    third_party_id = models.CharField(max_length=64, blank=False, unique=True)
Run Code Online (Sandbox Code Playgroud)

使用Django默认主键.我希望用户能够通过在添加页面上设置third_party_id来添加产品,但我不希望编辑页面中的该字段可编辑以避免损坏third_party_id.在Django文档中,相同的设置似乎用于添加和编辑.这可能吗?

django django-admin

35
推荐指数
2
解决办法
9661
查看次数

覆盖Django管理员中的表单

在Django管理员中,我想覆盖并实现我自己的模型形式(例如Invoice模型).

我希望发票表单有自动填写客户名称,产品名称的字段,我也想进行自定义验证(例如客户的信用额度).如何覆盖Django管理员提供的默认表单并实现我自己的?

我是Django的新手,我很欣赏任何指针.

python django django-models django-admin django-views

35
推荐指数
2
解决办法
7万
查看次数

订购admin.ModelAdmin对象

假设我有我的披萨应用程序与Topping和Pizza课程,他们在Django Admin中显示如下:

PizzaApp
-
Toppings      >>>>>>>>>>      Add / Change

Pizzas        >>>>>>>>>>      Add / Change
Run Code Online (Sandbox Code Playgroud)

但我希望他们这样:

PizzaApp
-
Pizzas        >>>>>>>>>>      Add / Change

Toppings      >>>>>>>>>>      Add / Change
Run Code Online (Sandbox Code Playgroud)

如何在我的admin.py中配置它?

django django-admin

34
推荐指数
7
解决办法
2万
查看次数

在Django Admin中过滤ManyToMany框

我有一个与另一个对象有多对多关系的对象.
在Django Admin中,这会在多个选择框中生成一个很长的列表.

我想过滤ManyToMany关系,因此我只获取客户选择的City中可用的类别.

这可能吗?我是否必须为它创建一个小部件?如果是这样 - 我如何将行为从标准的ManyToMany字段复制到它,因为我也想要filter_horizo​​ntal函数.

这些是我的简化模型:

class City(models.Model):
    name = models.CharField(max_length=200)


class Category(models.Model):
    name = models.CharField(max_length=200)
    available_in = models.ManyToManyField(City)


class Customer(models.Model):
    name = models.CharField(max_length=200)
    city = models.ForeignKey(City)
    categories = models.ManyToManyField(Category)
Run Code Online (Sandbox Code Playgroud)

django many-to-many django-forms django-admin django-widget

34
推荐指数
3
解决办法
3万
查看次数

Django Admin:如何在同一视图中显示两个不同模型的字段?

我的网站使用Django的用户身份验证用户模型和自定义UserProfile模型来存储一些额外的数据(生日等).有没有办法在Django管理员中创建一个视图,将来自User和UserProfile模型的字段编织在一起?

我怀疑这个代码片段甚至不是很接近,但它可能有助于说明我正在尝试做什么:

from django.contrib import admin
from django.contrib.auth.models import User
from userprofile.models import UserProfile


class UserProfileAdmin(admin.ModelAdmin):
    list_display = ('name', 'gender', 'User.email') #user.email creates the error - tried some variations here, but no luck.

admin.site.register(UserProfile, UserProfileAdmin)
Run Code Online (Sandbox Code Playgroud)

错误信息:

NotperlyConfigured:UserProfileAdmin.list_display [2],'User.email'不是'UserProfileAdmin'的可调用或属性,或者在模型'UserProfile'中找到.

最终,我正在尝试创建一个管理视图,其中包含来自UserProfile的姓名和来自User的电子邮件.

django django-models django-admin

34
推荐指数
2
解决办法
2万
查看次数

Django管理员中的自定义验证

我有一个非常简单的Django应用程序,以记录给我的同事的讲座.由于它是相当基本的,我使用Django管理员本身.这是我的models.py:

#models.py
from django.db import models

class Lecture(models.Model):
    topic = models.CharField(max_length=100)
    speaker = models.CharField(max_length=100)
    start_date = models.DateField()
    end_date = models.DateField()
Run Code Online (Sandbox Code Playgroud)

我需要确保没有人在管理表单中的结束日期之后输入开始日期,所以我在管理员中阅读了django文档以进行自定义验证,并在我的admin.py中实现了以下内容:

#admin.py
from models import Lecture
from django.contrib import admin
from django import forms


class LectureForm(forms.ModelForm):
    class Meta:
        model = Lecture

        def clean(self):
            start_date = self.cleaned_data.get('start_date')
            end_date = self.cleaned_data.get('end_date')
            if start_date > end_date:
                raise forms.ValidationError("Dates are incorrect")
        return self.cleaned_data


class LectureAdmin(admin.ModelAdmin):
    form = LectureForm
    list_display = ('topic', 'speaker', 'start_date', 'end_date')

admin.site.register(Lecture, LectureAdmin)
Run Code Online (Sandbox Code Playgroud)

但是,这对我的管理员没有任何影响,我可以保存讲座,其中start_date位于end_date之后,如图所示:在此输入图像描述

我究竟做错了什么 ??

python django django-forms django-admin django-validation

34
推荐指数
2
解决办法
2万
查看次数

如何抑制Django中的弃用警告?

每次我使用django-admin命令 - 即使在TAB完成时 - 它会抛出一个RemovedInDjango19Warning(如果我使用test命令,则会抛出更多).我怎样才能压制这些警告?

我正在使用Django 1.8和Python 3.4(在虚拟环境中).据我所知,所有这些警告来自库而不是我的代码.

例子

这里有些例子:

  • …/lib/python3.4/importlib/_bootstrap.py:321: RemovedInDjango19Warning: django.contrib.contenttypes.generic is deprecated and will be removed in Django 1.9. Its contents have been moved to the fields, forms, and admin submodules of django.contrib.contenttypes. return f(*args, **kwds)

  • …/lib/python3.4/site-packages/django/contrib/admin/util.py:7: RemovedInDjango19Warning: The django.contrib.admin.util module has been renamed. Use django.contrib.admin.utils instead. "Use django.contrib.admin.utils instead.", RemovedInDjango19Warning)

  • …/lib/python3.4/site-packages/django/templatetags/future.py:25: RemovedInDjango19Warning: Loading the ``url`` tag from the ``future`` library is deprecated and will be removed in Django 1.9. Use …

python django django-admin

34
推荐指数
7
解决办法
2万
查看次数

Django 3.1 | 管理页面外观问题

今天我已将 Django 更新到最新版本 3.1。

但是由于某种原因,当登录到管理页面时,我只能看到一个看起来很奇怪的管理页面。

Django 管理员截图

管理文件

管理文件

有人可以帮助我出了什么问题,或者我需要修改哪些内容才能返回原始管理页面。

提前致谢

python django django-admin django-3.1

34
推荐指数
3
解决办法
5368
查看次数

除了"更改列表"视图之外,有没有办法让自定义Django管理操作出现在"更改"视图中?

我认为无论出于何种原因这很容易做到,但我看得更深,似乎没有直接的方法允许用户在实例的"更改"视图上执行自定义管理操作(即,当您只是查看编辑时屏幕显示单个实例,而不是实例列表).

我忽略了一个简单的方法吗?或者是我唯一的选择来覆盖其中一个管理模板(可能还有ModelAdmin.add_view方法)?

django django-admin

33
推荐指数
3
解决办法
9839
查看次数

django admin排序外键字段列表

django管理视图中是否有选项可用于外键字段的排序?即我有一个"学校"模型的外键,它显示为下拉列表,按照pk排序 - 我希望它按字母顺序排序.

django django-admin

33
推荐指数
2
解决办法
1万
查看次数