首页 > 解决方案 > 在任何给定页面上使用 Django 管理小部件

问题描述

这不是重复的!所有较旧的问题要么不起作用,要么已经过时。

根据 Django 文档https://docs.djangoproject.com/en/3.2/topics/forms/media/

Django Admin 应用程序为日历、过滤选择等定义了许多自定义小部件。这些小部件定义资产需求,Django 管理员使用自定义小部件代替 Django 默认值。Admin 模板将仅包含在任何给定页面上呈现小部件所需的那些文件。

如果您喜欢 Django Admin 应用程序使用的小部件,请随意在您自己的应用程序中使用它们!它们都存储在 django.contrib.admin.widgets 中。

这是我的forms.py:

from django import forms
from django.contrib.admin.widgets import AdminDateWidget, AdminTimeWidget
from .models import Category, Event


class AntragForm(forms.Form):
    user = forms.CharField()
    day = forms.DateField(widget=AdminDateWidget(), label="Datum", required=True)
    category = forms.ModelChoiceField(
        queryset=Category.objects.all()
    )
    start_time = forms.TimeField(widget=AdminTimeWidget(), label="Start", required=False)
    end_time = forms.TimeField(widget=AdminTimeWidget(), label="Ende", required=False)
    whole_day = forms.BooleanField(label="Ganztag", required=False)
    private = forms.BooleanField(label="Privat", required=False)
    whole_week = forms.BooleanField(label="Ganze Woche", required=False)
    summary = forms.CharField(label="Grund", required=False)
    description = forms.CharField(widget=forms.Textarea, label="Beschreibung", required=False)

这是模板的一部分:

<div class="row">
  <div class="col">
    {{ form.day|as_crispy_field}}
  </div>
</div>

我也尝试过不使用脆字段,但它也没有渲染,所以这不是问题。它根本不呈现小部件。前端也没有错误消息。是的,这些小部件在 Django Admin 中可以正常工作。

在此处输入图像描述

有人想在 2021 年让它工作吗?

标签: pythondjangodjango-formsdjango-templates

解决方案


推荐阅读