Questions tagged «django-forms»

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


3
Django反向查找外键
我有一个场地,这个场地上发生了很多事件。我的模型如下所示: class Event(models.Model): title = models.CharField(max_length=200) date_published = models.DateTimeField('published date',default=datetime.now, blank=True) date_start = models.DateTimeField('start date') date_end = models.DateTimeField('end date') def __unicode__(self): return self.title description = models.TextField() price = models.IntegerField(null=True, blank=True) venue = models.ForeignKey(Venue) class Venue(models.Model): title = models.CharField(max_length=200) date_published = models.DateTimeField('published date',default=datetime.now, blank=True) venue_latitude = models.CharField(max_length=200) venue_longitude = models.CharField(max_length=200) venue_address …


5
Django表单-设置标签
我有一个继承自其他2种形式的形式。在我的表单中,我想更改在父表单之一中定义的字段的标签。有谁知道该怎么做? 我正在尝试在自己的服务器中执行此操作__init__,但是它抛出一个错误,指出“'RegistrationFormTOS'对象没有属性'email'”。有人知道我该怎么做吗? 谢谢。 这是我的表单代码: from django import forms from django.utils.translation import ugettext_lazy as _ from registration.forms import RegistrationFormUniqueEmail from registration.forms import RegistrationFormTermsOfService attrs_dict = { 'class': 'required' } class RegistrationFormTOS(RegistrationFormUniqueEmail, RegistrationFormTermsOfService): """ Subclass of ``RegistrationForm`` which adds a required checkbox for agreeing to a site's Terms of Service. """ email2 …

4
Django ModelForm具有隐藏的输入
所以我有我的TagStatus模型。我正在尝试为此制作一个ModelForm。但是,我的表单要求使用{{tag.name}}填充隐藏的输入。我一直在浏览文档,但不知道如何使标记字段成为隐藏的输入。也许ModelForm不是要走的路? models.py: class TagStatus(models.Model): user = models.ForeignKey(User, null=True, unique=True) status = models.CharField(max_length=2, choices=tag_statuses) tag = models.ForeignKey(Tag, null=True, blank=True) def __unicode__(self): return self.status def save(self, *args, **kwargs): super(TagStatus, self).save(*args, **kwargs) class TagStatusForm(modelForm): class Meta: model = TagStatus fields = ('status','tag') widgets = { 'select': Select, 'tag': ??? } django views.py: @login_required …

11
Django表单,表单域的继承和顺序
我在我的网站中使用Django表单,并希望控制字段的顺序。 这是我定义表单的方式: class edit_form(forms.Form): summary = forms.CharField() description = forms.CharField(widget=forms.TextArea) class create_form(edit_form): name = forms.CharField() 名称是不可变的,仅在创建实体时列出。我使用继承来添加一致性和DRY原则。发生的事情并非错误,实际上是完全可以预料的,是名称字段在view / html中最后列出,但是我希望名称字段位于摘要和描述的顶部。我确实意识到,可以通过将摘要和描述复制到create_form并释放继承来轻松解决此问题,但是我想知道是否可行。 为什么?想象一下,您在edit_form中有100个字段,并且必须在create_form的顶部添加10个字段-复制和维护这两个表单看起来并不那么性感。(这是不是我的情况,我只是在举一个例子) 因此,如何覆盖此行为? 编辑: 显然,没有经过讨厌的破解(摆弄.field属性)就没有适当的方法。.field属性是SortedDict(Django内部数据结构之一),它不提供任何对key:value对进行重新排序的方法。但是,它确实提供了一种在给定索引处插入项目的方法,但是会将项目从类成员移动到构造函数中。该方法可以工作,但是会使代码的可读性降低。我认为合适的另一种方法是修改框架本身,这在大多数情况下都不是最优的。 简而言之,代码将变成这样: class edit_form(forms.Form): summary = forms.CharField() description = forms.CharField(widget=forms.TextArea) class create_form(edit_form): def __init__(self,*args,**kwargs): forms.Form.__init__(self,*args,**kwargs) self.fields.insert(0,'name',forms.CharField()) 那让我闭嘴:)


3
Django-CreateView不保存带有嵌套表单集的表单
我正在尝试采用一种使用Django-Crispy-Forms布局功能将嵌套表单集与主表单保存在一起的方法,但是我无法保存它。我正在跟踪此代码示例项目,但无法验证表单集以保存数据。如果有人能指出我的错误,我将非常感激。我还需要在同一视图中为EmployeeForm添加三个内联。我尝试了Django-Extra-Views,但无法正常工作。如果您建议为同一视图(如5左右)添加多个内联,将不胜感激。我想实现的唯一目的是创建一个页面Employee及其内联Education, Experience, Others。下面是代码: 楷模: class Employee(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='employees', null=True, blank=True) about = models.TextField() street = models.CharField(max_length=200) city = models.CharField(max_length=200) country = models.CharField(max_length=200) cell_phone = models.PositiveIntegerField() landline = models.PositiveIntegerField() def __str__(self): return '{} {}'.format(self.id, self.user) def get_absolute_url(self): return reverse('bars:create', kwargs={'pk':self.pk}) class Education(models.Model): employee = models.ForeignKey('Employee', on_delete=models.CASCADE, related_name='education') course_title …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.