django-forms 相关问题

与Django Web框架的表单相关的特定问题

类型错误:字段“id”需要一个数字,但得到了<SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x000001C1939EBE90>>

当我尝试将产品添加到愿望清单时,它给出了上述错误,它仍然将对象保存到模型中 def plus_wishlist(请求): 如果 request.method == "GET": prod_id = 请求.GET...

回答 2 投票 0

我获得了管理员ID,但是当我以用户身份登录时,当我尝试获取用户ID时,我仍然获得管理员ID

我在views.py文件中创建了一个函数,当我尝试获取用户的id时,我可以根据正在登录的电子邮件的角色查看不同的仪表板...

回答 1 投票 0

为什么 Django 表单在波斯语中显示 UnicodeEncodeError?

我有简单的表格如下: 形式.py: 从 django 导入表单 类NameForm(forms.Form): your_name = forms.CharField(label='你的名字', max_length=100) 视图.py: 从 django.http 导入

回答 2 投票 0

填写FormMixin表单

是否可以在不将表单变量传递给模板的情况下填充 FormMixin 表单数据?我有一个模板,但我不明白如何使用 Django 创建表单,所以我只是指定 n...

回答 1 投票 0

django 表单和过滤器 - 如何呈现 DateFromToRangeFilter 以便起始和结束输入字段位于一行?

我正在尝试使用 django-filter DateFromToRangeFilter。问题是小部件始终呈现为堆栈。我想要的是两个输入字段并排。我所做的一切都无法改变...

回答 1 投票 0

模板在 Django 中无法正常工作

我正在尝试为物流公司创建一个页面,用户可以通过此页面请求报价。我正在尝试实现一个页面,我可以在其中单击“添加产品”按钮,然后一切都会...

回答 1 投票 0

将返回用户视为“无”

因此,我正在创建一个用户确认系统,其中创建代码、存储在会话中并通过电子邮件发送 我在视图内做了一些打印,用于确认代码并激活...

回答 1 投票 0

在模型中做出选择后清空表格

我有这个类别的 django 模型: 类 CategoryModel(models.Model): CATEGORY_CHOICES = [ ('第一','硬件'), ('第二','软件'), ('第三','网络') ] 类别=型号.Char...

回答 1 投票 0

Django 不保存选择字段

我尝试保存选择字段,但无缘无故字段从不保存。我尝试创建模型表单,甚至在管理面板中该字段也不会保存。 我想为用户提供选择何时接收电子邮件的选项

回答 1 投票 0

如何在 Django 模型中创建密码字段

我想在视图中创建密码作为密码字段。 模型.py: 用户类(模型.模型): 用户名 = models.CharField(max_length=100) 密码 = models.CharField(max_length=50) 形式.py: ...

回答 5 投票 0

无法让 Django Date Widget 在表单中显示

我正在尝试获取表单中的日期字段,以使用日期选择器显示为日期。由于某种原因,该字段不会显示为日期类型。 模型字段: 注册日期 = models.DateFiel...

回答 1 投票 0

更改 Django 内联表单集属性的值

我需要将 -TOTAL_FORMS 的值更改为我添加到表单集中的字段数,以便 Django 将保存所有实例。 表格的相关部分: ... 我需要将 -TOTAL_FORMS 的值更改为我添加到表单集中的任意多个字段,以便 Django 将保存所有实例。 表格的相关部分: <div class="form-group"> <div class="input-group-sm"> <label class="text-muted">Approaches</label> <div class="form-control pl-4 pt-2"> {% for formset in inlines %} {{ formset.management_form }} {{ form.id }} {% for form in formset %} <div id="approach_form" class="row"> {{ form.errors }} <div class="col-4 pr-5>">{{ form.approach_type |add_class:"form-control" }}</div> <div class="col-4 pr-5>">{{ form.number |add_class:"form-control" }} </div> <div style="display: none;" class="col pr-5">{% if form.instance.pk %}{{ form.DELETE }}{% endif %}</div> </div> {% endfor %} {% endfor %} </div> </div> </div> JS函数调用 <script src="{% static 'flights/jquery.formset.js' %}"></script> <script type="text/javascript"> $(function() { $('#approach_form').formset({ prefix: '{{ approach_set.prefix }}' }); }) </script> JS脚本: /** * jQuery Formset 1.3-pre * @author Stanislaus Madueke (stan DOT madueke AT gmail DOT com) * @requires jQuery 1.2.6 or later * * Copyright (c) 2009, Stanislaus Madueke * All rights reserved. * * Licensed under the New BSD License * See: http://www.opensource.org/licenses/bsd-license.php */ ;(function($) { $.fn.formset = function(opts) { var options = $.extend({}, $.fn.formset.defaults, opts), flatExtraClasses = options.extraClasses.join(' '), totalForms = $('#id_' + options.prefix + '-TOTAL_FORMS'), maxForms = $('#id_' + options.prefix + '-MAX_NUM_FORMS'), minForms = $('#id_' + options.prefix + '-MIN_NUM_FORMS'), childElementSelector = 'input,select,textarea,label,div', $$ = $(this), applyExtraClasses = function(row, ndx) { if (options.extraClasses) { row.removeClass(flatExtraClasses); row.addClass(options.extraClasses[ndx % options.extraClasses.length]); } }, updateElementIndex = function(elem, prefix, ndx) { var idRegex = new RegExp(prefix + '-(\\d+|__prefix__)-'), replacement = prefix + '-' + ndx + '-'; if (elem.attr("for")) elem.attr("for", elem.attr("for").replace(idRegex, replacement)); if (elem.attr('id')) elem.attr('id', elem.attr('id').replace(idRegex, replacement)); if (elem.attr('name')) elem.attr('name', elem.attr('name').replace(idRegex, replacement)); }, hasChildElements = function(row) { return row.find(childElementSelector).length > 0; }, showAddButton = function() { return maxForms.length == 0 || // For Django versions pre 1.2 (maxForms.val() == '' || (maxForms.val() - totalForms.val() > 0)); }, /** * Indicates whether delete link(s) can be displayed - when total forms > min forms */ showDeleteLinks = function() { return minForms.length == 0 || // For Django versions pre 1.7 (minForms.val() == '' || (totalForms.val() - minForms.val() > 0)); }, insertDeleteLink = function(row) { var delCssSelector = $.trim(options.deleteCssClass).replace(/\s+/g, '.'), addCssSelector = $.trim(options.addCssClass).replace(/\s+/g, '.'); if (row.is('TR')) { // If the forms are laid out in table rows, insert // the remove button into the last table cell: row.children(':last').append('<a class="' + options.deleteCssClass +'" href="javascript:void(0)">' + options.deleteText + '</a>'); } else if (row.is('UL') || row.is('OL')) { // If they're laid out as an ordered/unordered list, // insert an <li> after the last list item: row.append('<li><a class="' + options.deleteCssClass + '" href="javascript:void(0)">' + options.deleteText +'</a></li>'); } else { // Otherwise, just insert the remove button as the // last child element of the form's container: row.append('<a class="' + options.deleteCssClass + '" href="javascript:void(0)">' + options.deleteText +'</a>'); } // Check if we're under the minimum number of forms - not to display delete link at rendering if (!showDeleteLinks()){ row.find('a.' + delCssSelector).hide(); } row.find('a.' + delCssSelector).click(function() { var row = $(this).parents('.' + options.formCssClass), del = row.find('input:hidden[id $= "-DELETE"]'), buttonRow = row.siblings("a." + addCssSelector + ', .' + options.formCssClass + '-add'), forms; if (del.length) { // We're dealing with an inline formset. // Rather than remove this form from the DOM, we'll mark it as deleted // and hide it, then let Django handle the deleting: del.val('on'); row.hide(); forms = $('.' + options.formCssClass).not(':hidden'); } else { row.remove(); // Update the TOTAL_FORMS count: forms = $('.' + options.formCssClass).not('.formset-custom-template'); totalForms.val(forms.length); } for (var i=0, formCount=forms.length; i<formCount; i++) { // Apply `extraClasses` to form rows so they're nicely alternating: applyExtraClasses(forms.eq(i), i); if (!del.length) { // Also update names and IDs for all child controls (if this isn't // a delete-able inline formset) so they remain in sequence: forms.eq(i).find(childElementSelector).each(function() { updateElementIndex($(this), options.prefix, i); }); } } // Check if we've reached the minimum number of forms - hide all delete link(s) if (!showDeleteLinks()){ $('a.' + delCssSelector).each(function(){$(this).hide();}); } // Check if we need to show the add button: if (buttonRow.is(':hidden') && showAddButton()) buttonRow.show(); // If a post-delete callback was provided, call it with the deleted form: if (options.removed) options.removed(row); return false; }); }; $$.each(function(i) { var row = $(this), del = row.find('input:checkbox[id $= "-DELETE"]'); if (del.length) { // If you specify "can_delete = True" when creating an inline formset, // Django adds a checkbox to each form in the formset. // Replace the default checkbox with a hidden field: if (del.is(':checked')) { // If an inline formset containing deleted forms fails validation, make sure // we keep the forms hidden (thanks for the bug report and suggested fix Mike) del.before('<input type="hidden" name="' + del.attr('name') +'" id="' + del.attr('id') +'" value="on" />'); row.hide(); } else { del.before('<input type="hidden" name="' + del.attr('name') +'" id="' + del.attr('id') +'" />'); } // Hide any labels associated with the DELETE checkbox: $('label[for="' + del.attr('id') + '"]').hide(); del.remove(); } if (hasChildElements(row)) { row.addClass(options.formCssClass); if (row.is(':visible')) { insertDeleteLink(row); applyExtraClasses(row, i); } } }); if ($$.length) { var hideAddButton = !showAddButton(), addButton, template; if (options.formTemplate) { // If a form template was specified, we'll clone it to generate new form instances: template = (options.formTemplate instanceof $) ? options.formTemplate : $(options.formTemplate); template.removeAttr('id').addClass(options.formCssClass + ' formset-custom-template'); template.find(childElementSelector).each(function() { updateElementIndex($(this), options.prefix, '__prefix__'); }); insertDeleteLink(template); } else { // Otherwise, use the last form in the formset; this works much better if you've got // extra (>= 1) forms (thnaks to justhamade for pointing this out): template = $('.' + options.formCssClass + ':last').clone(true).removeAttr('id'); template.find('input:hidden[id $= "-DELETE"]').remove(); // Clear all cloned fields, except those the user wants to keep (thanks to brunogola for the suggestion): template.find(childElementSelector).not(options.keepFieldValues).each(function() { var elem = $(this); // If this is a checkbox or radiobutton, uncheck it. // This fixes Issue 1, reported by Wilson.Andrew.J: if (elem.is('input:checkbox') || elem.is('input:radio')) { elem.attr('checked', false); } else { elem.val(''); } }); } // FIXME: Perhaps using $.data would be a better idea? options.formTemplate = template; if ($$.is('TR')) { // If forms are laid out as table rows, insert the // "add" button in a new table row: var numCols = $$.eq(0).children().length, // This is a bit of an assumption :| buttonRow = $('<tr><td colspan="' + numCols + '"><a class="' + options.addCssClass + '" href="javascript:void(0)">' + options.addText + '</a></tr>') .addClass(options.formCssClass + '-add'); $$.parent().append(buttonRow); if (hideAddButton) buttonRow.hide(); addButton = buttonRow.find('a'); } else { // Otherwise, insert it immediately after the last form: $$.filter(':last').after('<a class="' + options.addCssClass + '" href="javascript:void(0)">' + options.addText + '</a>'); addButton = $$.filter(':last').next(); if (hideAddButton) addButton.hide(); } addButton.click(function() { var formCount = parseInt(totalForms.val()), row = options.formTemplate.clone(true).removeClass('formset-custom-template'), buttonRow = $($(this).parents('tr.' + options.formCssClass + '-add').get(0) || this), delCssSelector = $.trim(options.deleteCssClass).replace(/\s+/g, '.'); applyExtraClasses(row, formCount); row.insertBefore(buttonRow).show(); row.find(childElementSelector).each(function() { updateElementIndex($(this), options.prefix, formCount); }); totalForms.val(formCount + 1); // Check if we're above the minimum allowed number of forms -> show all delete link(s) if (showDeleteLinks()){ $('a.' + delCssSelector).each(function(){$(this).show();}); } // Check if we've exceeded the maximum allowed number of forms: if (!showAddButton()) buttonRow.hide(); // If a post-add callback was supplied, call it with the added form: if (options.added) options.added(row); return false; }); } return $$; }; /* Setup plugin defaults */ $.fn.formset.defaults = { prefix: 'form', // The form prefix for your django formset formTemplate: null, // The jQuery selection cloned to generate new form instances addText: 'Add', // Text for the add link deleteText: 'Remove', // Text for the delete link addCssClass: 'add-row', // CSS class applied to the add link deleteCssClass: 'delete-row', // CSS class applied to the delete link formCssClass: 'dynamic-form', // CSS class applied to each form in a formset extraClasses: [], // Additional CSS classes, which will be applied to each form in turn keepFieldValues: '', // jQuery selector for fields whose values should be kept when the form is cloned added: null, // Function called each time a new form is added removed: null // Function called each time a form is deleted }; })(jQuery); 要更改的渲染 HTML: <input name="approach_set-TOTAL_FORMS" value="1" id="id_approach_set-TOTAL_FORMS" type="hidden"> 值需要匹配我创建的许多字段 代码来自这里: https://github.com/elo80ka/django-dynamic-formset/blob/master/docs/usage.rst 谢谢! // 限制形式 // LIMITANDO FORMS var x = document.getElementById('id_solicitacaodocumento_set-MAX_NUM_FORMS'); x.value = 5

回答 1 投票 0

Django 数据保存在错误的模型中 为什么将模型 B、C 数据保存在模型 A 中

我有 3 个 django 模型 CustomerDetail CarrierForm InfluencerModel 当我尝试通过不同不同页面的表单将数据保存在 CarrierForm 或 InfluencerModel 中时,它会保存在模型中

回答 1 投票 0

如何使用 ModelForm 过滤 Django 表单中的值?

我正在尝试使用 ModelForm 添加我的数据。它运行良好,除了外键下拉列表显示所有值,我只希望它显示与

回答 5 投票 0

django-allauth 将用户名设置为与电子邮件相同

我有一份注册表单,仅要求提供电子邮件和密码。当用户注册时,django-allauth 通过从用户的电子邮件地址中去除“@email”后缀来为该用户创建用户名。 S...

回答 3 投票 0

Django OneToOne 配置文件/用户关系未保存

我正在尝试设置一个 Django 博客应用程序,以使用用户与配置文件模型之间的一对一关系,以便捕获默认 Django 用户模型之外的模式信息。我遇到的问题...

回答 2 投票 0

Django FileField:文件未上传到媒体文件夹或 sql 数据库中

我正在使用 Django 制作一个电子学习门户。用户“老师”应该能够上传任何课程下的文件。但是,文件未上传到 media/course_materials 文件夹中。当我检查时...

回答 1 投票 0

我在 django 的视图中遇到多值键错误

我创建了一个评论系统,当我要提交评论时出现错误 在我的views.py中: def ajex_add_review(请求,pid): 产品=Product.objects.get(pk=pid) 用户=请求.用户

回答 1 投票 0

如果用户登录,如何从下拉列表中删除超级管理员

请帮助我。 我必须从前端显示的表单中删除超级用户。意味着当我创建待办事项并且我还选择用户时,因此超级管理员也显示在 dropdwn 中,所以我没有尝试任何...

回答 1 投票 0

Django 表单未填充 POST 数据

底部的解决方案 问题:Django 表单填充对象列表而不是值 摘要:我有 2 个模型实体和中断。 Breaks 与entity_id 有 FK 关系(不是 P...

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.