首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Django admin没有反映choiceField中的动态选择

是因为Django admin在渲染表单时只会使用模型字段的默认值,而不会执行与该字段相关的动态选择逻辑。为了解决这个问题,可以通过自定义admin表单来实现动态选择。

首先,需要创建一个自定义的表单类,继承自Django admin的ModelForm。在表单类中,可以重写字段的初始化方法,以实现动态选择。

代码语言:python
复制
from django import forms
from django.contrib import admin
from .models import YourModel

class YourModelForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(YourModelForm, self).__init__(*args, **kwargs)
        # 在这里可以根据需要进行动态选择的逻辑
        # 例如,根据其他字段的值来动态选择choiceField的选项
        # self.fields['choiceField'].choices = your_dynamic_choices

class YourModelAdmin(admin.ModelAdmin):
    form = YourModelForm

admin.site.register(YourModel, YourModelAdmin)

在上述代码中,我们创建了一个自定义的表单类YourModelForm,并在__init__方法中对choiceField字段进行了动态选择。你可以根据具体的业务需求,在__init__方法中编写逻辑来动态设置choiceField的选项。

然后,我们将自定义的表单类YourModelForm与Django admin的ModelAdmin类YourModelAdmin关联起来,并将其注册到admin站点中。

通过以上步骤,Django admin将使用自定义的表单类来渲染表单,并且可以根据动态选择逻辑来设置choiceField字段的选项。

推荐的腾讯云相关产品:腾讯云云服务器(CVM)、腾讯云数据库MySQL版、腾讯云对象存储(COS)。

腾讯云云服务器(CVM):https://cloud.tencent.com/product/cvm

腾讯云数据库MySQL版:https://cloud.tencent.com/product/cdb_mysql

腾讯云对象存储(COS):https://cloud.tencent.com/product/cos

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

django admin 根据choice字段选择不同来显示不同页面方式

} }; #当选择类型改变时候触发react函数 django.jQuery(function () { react(); django.jQuery...class User(models.Model): class Meta: # 此处设置 admin 显示名称 verbose_name = verbose_name_plural...动态显示菜单权限 动态获取显示菜单,注意本次显示是后台操作 需要获取当前用户权限信息,获取 url 和 是否为菜单,以及所带 icon 图标。因为设计到传值问题,于是我们产生了自定过滤器。...首先自定过滤器 # web.py 文件 from django.utils.safestring import mark_safe from django.template import Library...以上这篇django admin 根据choice字段选择不同来显示不同页面方式就是小编分享给大家全部内容了,希望能给大家一个参考。

2.8K10

Python:Django框架

查看并理解这个文件可用设置类型及其默认值。 urls.py:Django项目的URL设置。 可视其为你django网站目录。...pip3 install django==3.0.5 #查看Django版本 django-admin --version 创建django项目:bug 选择项目解释器: bug 3)PyCharm...构建项目 可以使用PyCharm直接一步到位,但是还是要了解上方命令构建方式 有可能创建之后,没有自动帮你选好解释器(虚拟环境),你可以自己到设置配置 三、本地配置 本地配置local_settings...TURE=将NULL空值存储到数据库 blank boolean 值,该字段是否可以为空。如果为假,则必须有值。 choices 元组值,一个用来选择2维元组。...primary_key 设置当前字段为主键,如果没有设置主键django创建表时会自动id主键 radio_admin 用于 admin 模式下将 select 转换为 radio 显示。

4.3K40

django form规则组件笔记(附代码)

9.4 initial=None 9.5 obj.as_p 9.6 disabled=False, 9.7 widget=None 10 widget属性可以定义html哪些插件 10.0 choices选项可以从数据库获取...,可以动态生成html标签,就是根据这些属性,进行动态生成html标签 9.1 label=None label=None, 用于生成Label标签或显示内容 就是在后端form文件里面的某一个字段...,里面有这个属性,那么将这个对象返回给前端,就可以直接显示,获取方法是 动态生成标签 9.2 label_suffix=None label_suffix=None Label内容后缀...默认渲染input框; 我们在自定义admin后台新增页面,或者修改页面的时候,就可以根据这个属性进行自定义标签形式; 10 widget属性可以定义html哪些插件 10.0 choices选项可以从数据库获取...from django.core.validators import RegexValidator class MyForm(Form): user = fields.ChoiceField

94410

Django 常用Form表单

Django最强大部分之一是自动管理界面。它从模型读取元数据,以提供一个快速,以模型为中心界面,受信任用户可以在其中管理您网站上内容。管理员建议用法仅限于组织内部管理工具。...A: {} 选择B: {}".format(select_a,select_b))普通Form表单提交 提交账号密码 <!...username = data.get("username") is_exits = models.User.objects.filter(username="<em>admin</em>...,前端<em>动态</em>显示,以两个<em>选择</em>框为例 # name: models.py from <em>django</em>.db import models class DBHost(models.Model): id =...,并返回到编辑框<em>中</em>. # name:views.py from <em>django</em>.shortcuts import render from <em>django</em>.forms import Form,fields,widgets

1.2K20

使用 Django 进行测试驱动开发

编写代码满足测试用例需求。 运行测试用例。 如果通过,说明代码满足了测试用例所定义需求。 如果未通过,则需要重构代码,直到通过。 重复以上步骤,直到通过全部测试用例。...TDD 可以通过较短开发周期提高开发效率。一次解决测试用例个别可以最大限度地减少干扰因素。重大更改将更容易跟踪和解决。减少了调试工作,提高了效率,并且将更多时间花在开发上。...,我们创建一个名字叫 convert 项目: pip install django django-admin startproject converter 此时 Django 已经为我们生成了 converter...import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls...), path('length/', include('length.urls')), ] 这样一个没有任何业务逻辑项目就创建成功了,接下来编写测试用例: 3、编写测试用例 在 lengh

99040

Django Web开发基础知识

MVC 与 MTV MVC - Model View Controller,模型(model)-视图(view)-控制器(controller)缩写,是软件工程一种软件架构模式,Model模型主要用于存储与数据库相关字段或数据库通信方面的东西...,Controller控制器用于存储URL分发等,最后View视图则是完善控制器路径分发,每一个路径对应一个view视图函数。...分割URL和传输数据,参数之间以&相连,POST方法是把提交数据放在HTTP包Body. GET提交数据大小有限制(因为浏览器对URL长度有限制),而POST方法提交数据没有限制....2.如果没有创建app名字,也可以在进入django目录,执行 python manage.py startapp MyWeb 命令创建. 更多django shell命令行参数。...,前端动态显示,以两个选择框为例 # name: models.py from django.db import models class DBHost(models.Model): id =

2.1K20

【愚公系列】2022年04月 Python教学课程 64-DRF框架之序列化器

文章目录 一、DRF框架之序列化器使用 1.设置新环境 2.创建新项目 3.创建模型类 4.创建序列化程序类 5.使用序列化程序 6.使用模型序列化程序 7.使用我们序列化程序编写常规 Django...cd ~ django-admin startproject tutorial cd tutorial 完成后,我们可以创建一个应用程序,我们将使用它来创建一个简单Web API。...我们可以通过声明与Django形式非常相似的序列化程序来做到这一点。在名为目录创建一个文件,然后添加以下内容。...,您可以通过打印序列化程序实例表示形式来检查序列化程序实例所有字段。..., ] 值得注意是,我们目前没有正确处理一些边缘情况。

77010

Django教程(三)- Django表单Form1.Form 基本使用2.Form字段及插件3.通过Django表单Form来完成需求4.自定义验证验证规则

1.Form 基本使用 djangoForm组件有以下几个功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 2.Form字段及插件...%f', '%H:%M'] FilePathField(ChoiceField) 文件选项,目录下文件显示在页面 path, 文件夹路径 match...urls.py· from django.conf.urls import include, url from django.contrib import admin from . import views...,详情见Django教程(一)- Django视图与网址 效果展示: ?...在网页上打印1-100之间偶数 4.自定义验证验证规则 方式1:在字段自定义validators设计正则匹配 from django.forms import Form from django.forms

10.1K40

Python Django form 组件动态从数据库取choices数据实例

这时候需要重启服务才能在页面上显示这些内容 也就是说每次数据库内容更新,都需要重启服务才能显示出来 可以通过重写父类 __init__ 方法来解决 views.py: from django.shortcuts...import render, HttpResponse from app01 import models from django import forms from django.forms import..."required": "该字段不能为空", }, widget=widgets.TextInput(attrs={"class": "form-control"}) ) city = forms.ChoiceField...models.City.objects.values_list("id", "name") # 判断用户名信息 def clean_username(self): value = self.cleaned_data.get("username") if "admin...以上这篇Python Django form 组件动态从数据库取choices数据实例就是小编分享给大家全部内容了,希望能给大家一个参考。

83121

django admin详情表单显示添加自定义控件实现

以前并没有做过相似的开发,我们后台是xadmin,当时正在研究xadmin插件,于是想着能不能用插件去做,后来发现太麻烦,而且实现起来我也没研究通,主要是添加按钮之类没搞懂,于是就换了一种简单方法...首先先讲解下思路,admin中有几个界面,一个是展示list界面,一个是详情model界面,model其实就是详情detail,里面记录了此条数据全部内容,精简来说就是一个form表单内容展示...补充知识:Django admin 列表每行后面添加审核按钮 我就废话不多说了,还是直接看代码吧!...在admin把 pass_audit_str 加入到list_display元组 list_display = (‘id’, ‘create_time’, ‘pass_audit_str’,)...刷新页面即可; 以上这篇在django admin详情表单显示添加自定义控件实现就是小编分享给大家全部内容了,希望能给大家一个参考。

4.9K20

揭开DRF序列化技术神秘面纱

在RESTful API,接口返回是JSON,JSON内容对应是数据库数据,DRF是通过序列化(Serialization)技术,把数据模型转换为JSON,反之,叫做反序列化(deserialization...接着在虚拟环境安装本文用到包: pip install django pip install djangorestframework pip install pygments # 代码高亮 创建项目...创建project: django-admin startproject tutorial 创建app: cd tutorial python manage.py startapp snippets...在snippets/views.py添加代码: from django.http import HttpResponse, JsonResponse from django.views.decorators.csrf...CSRF token是指服务器通过token来认证,如果请求没有token或者token不匹配,那么就认为可能是CSRF而拒绝该请求。

65720
领券