【问题标题】:Django AdminDateWidget only appearing once on formDjango AdminDateWidget 仅在表单上出现一次
【发布时间】:2019-03-10 18:01:03
【问题描述】:

我对使用 django 框架还很陌生,我正在使用 AdminDateWidget 构建一个站点。在另一篇文章的帮助下,我已经让小部件工作了,但是当我定义了两个字段时,它只出现在表单上一次。如果我注释掉其中一个字段,它将出现在另一个字段上,但我无法让它同时出现在两个字段上。

来自我的 forms.py 的代码

class CertForm(forms.ModelForm):
    class Meta:
        model = cert
        #fields = ('title','created_date')
        fields = '__all__'
        widgets = {
                'created_date': AdminDateWidget(),
                'expiry_date': AdminDateWidget(),
}

有什么建议吗?

谢谢

【问题讨论】:

  • 能否分享您模板中的代码?

标签: django forms widget


【解决方案1】:

终于搞定了

forms.py - 几乎不言自明

import datetime
from django import forms
from django.forms import widgets
from django.contrib.admin import widgets
from .models import cert

class CertForm(forms.ModelForm):

    class Meta:
        model = cert
        fields = '__all__'
        widgets = {
           'created_date': widgets.AdminDateWidget,
           'expiry_date': widgets.AdminDateWidget,
        }

urls.py -

from django.urls import path
from django.views.i18n import JavaScriptCatalog # **add this**
from . import views
urlpatterns = [
    path('', views.cert_list, name='cert_list'),
    path('cert/<int:pk>/', views.cert_detail, name='cert_detail'),
    path('cert/new', views.cert_new, name='cert_new'),
    path('jsi18n', JavaScriptCatalog.as_view(), name='javascript-catalog'), # **add this**
]

base.html 模板添加这个块

<script type="text/javascript" src="{% url 'javascript-catalog' %}"></script>
<script type="text/javascript" src="{% static '/admin/js/core.js' %}"></script>
<link rel="stylesheet" type="text/css" href="{% static '/admin/css/widgets.css' %}">
<style>.calendar>table>caption{caption-side:unset}</style>
{{ form.media }} 

% load static %}

{% load admin_static %}

<link rel="stylesheet" type="text/css" href="{% static 'admin/css/base.css' %}" />
<link rel="stylesheet" type="text/css" href="{% static 'admin/css/widgets.css' %}" />

<html>
    <head>
        <title>SSL Cert Management</title>
        <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
        <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css">
        <link href='//fonts.googleapis.com/css?family=Lobster&subset=latin,latin-ext' rel='stylesheet' type='text/css'>
        <link rel="stylesheet" href="{% static 'css/cert.css' %}">
        <script type="text/javascript" src="{% url 'javascript-catalog' %}"></script>
        <script type="text/javascript" src="{% static '/admin/js/core.js' %}"></script>
        <link rel="stylesheet" type="text/css" href="{% static '/admin/css/widgets.css' %}">
        <style>.calendar>table>caption{caption-side:unset}</style><!--caption fix for bootstrap4-->
        {{ form.media }}
    </head>
<body>
    <div class="page-header">
        <a href="{% url 'cert_new' %}" class="top-menu"><span class="glyphicon glyphicon-plus"></span></a>
        <h1><a href="/">SSL Cert Management</a></h1>
    </div>
    <div class="content container">
        <div class="row">
            <div class="col-md-8">
            {% block content %}
            {% endblock %}
            </div>
        </div>
    </div>
</body>
</html>

【讨论】:

    猜你喜欢
    • 2012-12-30
    • 1970-01-01
    • 2018-12-15
    • 1970-01-01
    • 2016-01-23
    • 2020-03-12
    • 2012-01-31
    • 2019-07-09
    • 1970-01-01
    相关资源
    最近更新 更多