- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用 Django 1.7,我有一个 ModelChoiceField
,它在基础数据更新时不会更新。要显示新数据行,我需要重新启动网络服务器。
Django 表单、字段、 View :
class JobsModelChoiceField(forms.ModelChoiceField):
def __init__(self, *args, **kwargs):
super(JobsModelChoiceField, self).__init__(*args, **kwargs)
groups = groupby(sorted(kwargs['queryset'], key=attrgetter('company')), attrgetter('company'))
self.choices = [(company, [(t.id, self.label_from_instance(t)) for t in title])
for company, title in groups]
def label_from_instance(self, job):
return u'{} {}'.format(job.id, job.title)
class NewApplicationForm(forms.Form):
id = JobsModelChoiceField(queryset=Job.objects.all(),
widget=forms.Select(attrs={'class':'chosen-select'}))
first_name = forms.CharField(label='First Name')
last_name = forms.CharField(label='Last Name')
email = forms.EmailField(label='Email')
phone_number = forms.CharField(label='Phone Number', max_length=42, required=False)
resume = forms.FileField()
def save(self):
# save data
class NewApplicationView(SuccessMessageMixin, FormView):
template_name = 'applicants/new_application.html'
form_class = NewApplicationForm
success_url = reverse_lazy('applicants:add')
success_message = "Job Application was created successfully"
def form_valid(self, form):
# This method is called when valid form data has been POSTed.
# It should return an HttpResponse.
form.save()
return super(NewApplicationView, self).form_valid(form)
我遇到的问题的一个例子是,如果我在作业表中添加一个新行,那么在我重新启动 Web 服务器之前,该新行不会显示在表单选择字段中。
最佳答案
这是因为您的表单字段是静态填充的,而不是动态填充的(即不是每次实例化您的表单时)。您应该在表单__init__
方法中指定表单查询集,如下所示:
class NewApplicationForm(forms.Form):
id = JobsModelChoiceField(queryset=Job.objects.none(), ...)
...
def __init__(self, *args, **kwargs):
super(NewApplicationForm, self).__init__(*args, **kwargs)
self.fields['id'].queryset = Job.objects.all()
关于Django ModelChoiceField 未使用新数据更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33243098/
这个问题已经被问过很多次了。我浏览了很多,但仍然找不到我要找的东西。 我正在尝试仅在 Django-Admin 中加载父 ModelChoiceField 选择上的子 ModelChoiceField
我有一个必须手动呈现的模型表单,但 ModelChoiceField 属性没有任何效果。 class ExtendedUserForm(forms.ModelForm): favourite_
我有一个下拉框,该框由模型“选项”中过滤后的对象列表填充。目前,下拉列表显示每个选项的名称。我怎样才能让它显示同一张表中的另一个属性? self.fields['name'] = forms.Mode
我想允许用户删除与特定模型相关联的外键列表。 假设我们有这两个模型: class IceBox(models.Model): ... class FoodItem(models.Model):
我有一个带有 ModelChoiceField 的表单,我想从我的数据库中加载一个表。如果我在表单的 init 上使用这个查询集,那么我的 View 的 form.is_valid 工作正常: sel
我想在 Django 表单中显示一个下拉列表,其中下拉项目是在另一个应用程序的另一个模型中指定的。这就是我的意思: 标题/models.py TITLE_CHOICES = ( ('MR',
我想摆脱Django在ModelForm中添加代表外键的select输入的“-------------”选择 可以使用empty_label=none选项是been answered,但我具有Mode
我正在使用具有以下内容的表单: class InvoiceModelForm ( forms.ModelForm ): u = forms.ModelChoiceField ( queryse
所以我正在开发一个有模型事件的 django 应用程序。每个事件都有一些属性,比如说其中一个是“主机名”(我将在整个过程中使用它作为示例)。我需要实现搜索功能,用户可以搜索所有具有 hostname
使用 Django 1.7,我有一个 ModelChoiceField,它在基础数据更新时不会更新。要显示新数据行,我需要重新启动网络服务器。 Django 表单、字段、 View : class J
如何手动更改模型中选择字段的顺序? 例如: 这段代码: ModelChoiceField(queryset=SomeModel.objects.order_by('SomeField')) 给我: '
您好,有以下表单字段。 forms.py self.fields['sender_name'] = forms.ModelChoiceField(queryset=this_originator_na
我的 django 表单集中有验证错误。从数据库填充的两个下拉列表没有通过验证,我不明白我的错误是什么。 型号 : class Country(models.Model): country_c
首先是代码: class CommentForm(forms.ModelForm): categories = forms.ModelChoiceField(queryset = Catego
我正在使用这样的东西: field1 = forms.ModelChoiceField(queryset=...) 如何让我的表单显示所选的值? 最佳答案 如果你想设置默认的初始值你应该定义initi
我是第一次使用django框架。我想从我的模型类(class)中获取数据以在表单的选择字段中显示它。但是当我对单一形式的两个不同字段使用相同的模型时,它显示错误 'ModelChoiceField'
当我编译我的代码时,返回了这条错误消息: 'ModelChoiceField' object has no attribute 'to_field_name' ModelChoiceFiled 在“学
我看到了 forms.ChoiceField 正在使用 this code验证值: def validate(self, value): """ Validates that the
我如何从 ModelChoiceField 中删除默认的 --------- 选择? 最佳答案 使用 empty_label=Nonefield2 = forms.ModelChoiceField(q
我有一个模型 class Article(models.Model): . . language = models.ForeignKey(Language, help_text
我是一名优秀的程序员,十分优秀!