- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在构建一个 View ,可以让我同时更新多个对象上的多个字段。我正在使用 执行此操作ModelFormSet & modelformset_factory .
该模板将是一个表单表,字段左侧带有对象名称(见下图)。
我找到了 this例如,但我坚持如何实现基于类的 View 和模板。
我的表单集
class BaseFormSet(BaseModelFormSet):
def __init__(self, *args, **kwargs):
super(BaseFormSet, self).__init__(*args, **kwargs)
self.queryset = Reference.objects.filter(
start__isnull=True)
ReferenceFormSet = modelformset_factory(
Reference,
fields=('start', 'end'),
formset=BaseFormSet,
extra=0)
class ReferenceFormSetView(LoginRequiredMixin, SuperuserRequiredMixin, FormView):
model = Reference
form_class = ReferenceFormSet
template_name = "references/references_form.html"
def form_valid(self, form):
for sub_form in form:
if sub_form.has_changed():
sub_form.save()
return super(ReferenceFormSetView, self).form_valid(form)
{% extends "base.html" %}
{% load crispy_forms_tags %}
{% block content %}
<div class="container">
<h1>{{ headline }}</h1>
<div class="row">
<form action="" method="post">
{% crispy form %}
<div class="">
<input type="submit" value="Submit" />
</div>
</form>
</div>
</div>
{% endblock content %}
最佳答案
我找到了一个使用名为 django-extra-views 的包的解决方案.
有一个类叫ModelFormSetView这正是我想要的。这是我的实现(简化)供其他人使用 -
我的观点
class ReferenceFormSetView(ModelFormSetView):
model = Reference
template_name = "references/references_form.html"
fields = ['start', 'end']
extra = 0
def get_queryset(self):
return self.model.objects.all()
def get_success_url(self):
return reverse('references:formset')
def formset_valid(self, formset):
"""
If the formset is valid redirect to the supplied URL
"""
messages.success(self.request, "Updated")
return HttpResponseRedirect(self.get_success_url())
def formset_invalid(self, formset):
"""
If the formset is invalid, re-render the context data with the
data-filled formset and errors.
"""
messages.error(self.request, "Error dummy")
return self.render_to_response(self.get_context_data(formset=formset))
<form class="" method="post">
{% csrf_token %}
{{ formset.management_form }}
{% for form in formset %}
<div class="">
{% for field in form %}
{{ field }}
{% endfor %}
</div>
{% endfor %}
<button type="submit" class="btn btn-primary">Save</button>
</form>
关于django - 在基于 Django 类的 View 中使用 modelformset_factory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49640900/
我在我的一个 View 中使用了 django modelformset_factory。我正在使用 javascript 向模板中的表单集添加新表单。一切正常,但我的问题是,当我尝试使用 model
我需要从我的查询中过滤掉大量的对象。目前,它正在抓取类中的所有对象,我想将其过滤为查询字符串中的相关对象。我怎样才能做到这一点?当我尝试时,我收到一个属性错误说明 ''QuerySet' object
使用 modelformset_factory 时,如何从数据库中删除在表单中标记为删除的对象? 我像这样创建我的 modelformset_factory: ItemFormset = modelf
关于这些模型: class Projects(models.Model): projectDescription = models.CharField(max_length=50,blank=
我仍在与表单集作斗争,我无法真正理解为什么会出现此错误: u'ManagementForm 数据丢失或已被篡改 这是我的代码:请指出我的错误并帮助我解决这个问题。 @csrf_protect @tra
Django :1.4.1 模型: class Hoja(models.Model): nombre = models.CharField(max_length=200) # requerid
我一直在尝试遵循教程和其他 SO 问题,并有一个 modelformset_factory 显示 html 中看起来像表单的列表,但事实证明它们不是实际的表单。 显示的html: C
为简单模型创建了一组表单。当我尝试更改表单中的模型对象数据并将这些更改保存在数据库中时,新数据不会因此保存,并且会重定向到具有相同数据的表单页面,尽管至少有关于应该输出操作的成功或失败。终端不返回任何
基于 this关于 formset_factory 的回答,我尝试对 modelformset_factory 做同样的事情: from django.utils.functional import
我正在使用 modelformset_factory。 如何在生成的每个表单字段中添加占位符文本? 例如,我有 AdvisorsFormSet = modelformset_factory( S_Ad
我使用 modelformset_factory 创建了一个简单的联系表单,以使用数据库模型在 View 中构建表单。我遇到的问题是 save() 之前的 is_valid() 检查不起作用。当我提交
Django 中的表单可能很复杂。 Formsets 会让你想退出 Django。我就在那个时候。 有哪些不同的用例以及使用哪个(哪些)用例的注意事项? 我正在寻找关于何时使用每个工厂的更好指导,因为
假设我有一个联系人对象,我想在 django(1.8) 中拥有两组联系人表单集,并按 html 模板中的 fieldset 标签划分。我使用 modelformset_factory。无论我使用一两个
我正在使用模型表单集一次添加模型的多个实例。我正在使用基于类的 View 。这是我的views.py 用于创建“库”的部分 class LibraryCreate(View): model = Lib
我正在使用 Django 模型继承来创建两个模型 - WorkAttachmentPicture 和 WorkAttachmentAudio class WorkAttachment(models.M
我正在构建一个 View ,可以让我同时更新多个对象上的多个字段。我正在使用 执行此操作ModelFormSet & modelformset_factory . 该模板将是一个表单表,字段左侧带有对
我在创建新产品时遇到了不保存图像的挑战。表单呈现得很好,图像已上传,但从未保存,直到我使用管理员上传并保存它,即当它在我创建的产品上可见时。 我认为我在views.py中的类ProductCreate
我正在尝试使用 django modelformset_factory 在 django 中创建学生出勤表...但是当我保存表单集时,它显示 id 无效,这是我的实现 我有两个模型:StudentAt
我的 models.py 看起来像这样: class Member(models.Model): name = models.CharField(max_length=255) occ
我是一名优秀的程序员,十分优秀!