- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图了解如何通过子类化 MultiWidgets 和 MultiValueFields 来创建表单。
我有一个简单的地址模型和相关表格:
class Address(models.Model):
user = models.ForeignKey(User)
city = models.CharField(max_length=255)
state = models.CharField(choices = settings.STATES, max_length=50)
postal = models.CharField(max_length=10)
address = models.TextField()
class Meta:
verbose_name_plural = 'Addresses'
class AddressFieldWidget(forms.MultiWidget):
def decompress(self,value):
if value:
return [value[0],value[1],value[2]]
return ''
def format_output(self, rendered_widgets):
str = ''
line_1 = '<td class="align_left"><label for="contact_phone">Address Line 1</label></td>'
for field in rendered_widgets:
str += '<tr>' + line_1
str += '<td class="align_right">%s</td></tr>' % field
return '<tr>' + str + '</tr>'
def value_from_datadict(self,data,files,name):
line_list = [widget.value_from_datadict(data,files,name+'_%s' %i) for i,widget in enumerate(self.widgets)]
try:
return line_list[0] + ' ' + line_list[1] + ' ' + line_list[2]
except:
return ''
class AddressField(forms.MultiValueField):
def __init__(self,*args,**kwargs):
fields = (
forms.CharField(widget=forms.TextInput(attrs={'class':'big'})),
forms.CharField(widget=forms.TextInput(attrs={'class':'big'})),
forms.CharField(widget=forms.TextInput(attrs={'class':'big'})),
)
super(AddressField,self).__init__(*args,**kwargs)
self.widget = AddressFieldWidget(widgets=[fields[0].widget, fields[1].widget, fields[2].widget])
def compress(self, data_list):
return data_list[0] + ' ' + data_list[1] + ' ' + data_list[2]
class AddressFormNew(forms.ModelForm):
postal = forms.CharField(widget=forms.TextInput(attrs={'class':'small'}))
address = AddressField()
city = forms.CharField(widget=forms.TextInput(attrs={'class':'big'}))
class Meta:
model = Address
@login_required
def render_addresses(request):
address_form = AddressFormNew()
if request.method == 'POST':
address_form = AddressFormNew(request.POST)
if address_form.is_valid():
address_form.save()
return HttpResponse('ok')
else:
return HttpResponse(address_form.errors['address'])
return render_to_response('profile/addresses.html',context_instance=RequestContext(request,{'address_form':address_form}))
Enter a list of values.
最佳答案
以下是我在您的代码中看到的应该解决的问题:
(1)。在您的地址字段 初始化 调用 时的方法初始化 父类(super class)的,你应该通过字段 作为论据。
class AddressField(forms.MultiValueField):
def __init__(self,*args,**kwargs):
fields = (
forms.CharField(widget=forms.TextInput(attrs={'class':'big'})),
forms.CharField(widget=forms.TextInput(attrs={'class':'big'})),
forms.CharField(widget=forms.TextInput(attrs={'class':'big'})),
)
self.widget = AddressFieldWidget(widgets=[fields[0].widget, fields[1].widget, fields[2].widget])
super(AddressField,self).__init__(fields=fields,*args,**kwargs)
def value_from_datadict(self,data,files,name):
res = []
for i, widget in enumerate(self.widgets):
res.append(widget.value_from_datadict(data, files, name + '_%s' % i))
return res
关于django - 使用 MultiWidget 和 MultiValueField 保存表单模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7437108/
我正在尝试制作一个不需要最后一个字段的 MultiValueField。 根据文档,如果我将 require_all_fields 设置为 False,那么我可以将一些字段设置为不需要,如下所示:-
我正在尝试基于动态创建其字段的 MultiValueField 创建自定义小部件。类似的东西: class MyField(MultiValueField): def __init__(sel
在我的 Django 1.7 应用程序中,我尝试利用 MultiValueField 类来实现密码/确认密码表单元素,即两个单独的密码字段,要求用户输入然后确认新密码。我已经使用两个单独的字段和 cl
我有一个带有 charfield 和 choicefield 的多值字段。我需要将选择传递给 choicefield 构造函数,但是当我尝试将其传递到自定义多值字段时,我收到错误 __init__()
我到处搜索,我能找到的都是几年前的东西和/或不适用的东西。 我正在尝试将 MultiValueField 添加到我的表单中,以便人们可以轻松地输入一到三个输入。应该只需要这些字段中的第一个,但表单验证
我需要一个 MultiWidgets 来呈现 HTML,就像下面的 MultiValueField 一样: My Family Select One Father
我有一个带有外键的模型到另一个也有外键的模型。我正在使用 django 表单向导渲染它(尝试支持尽可能旧的 django 版本),这对 inlineformset 不友好。我希望用户在表单向导中输入模
Django 的文档没有详细解释如何使用 MultiValueField 和 MultiWidget。我试过剖析 one implementation并没有取得好的结果。有人介意给我一个正确方向的快速
我想从 Solr 中获取多值字段不为空的结果集合。这可能吗?谢谢! 最佳答案 如解释here ,您可以使用 field:[* TO *] 匹配所有 field 不为空的文档。 关于search - 如
我想从 Solr 中获取多值字段不为空的结果集合。这可能吗?谢谢! 最佳答案 如解释here ,您可以使用 field:[* TO *] 匹配所有 field 不为空的文档。 关于search - 如
我试图了解如何通过子类化 MultiWidgets 和 MultiValueFields 来创建表单。 我有一个简单的地址模型和相关表格: class Address(models.Model):
如果我的一个搜索索引上有一个 MultiValueField,并且我想在搜索结果中显示每个值,我该怎么做?似乎某些内容的格式不正确,或者我以某种方式误解了 MultiValueField? class
这是在 Django 1.9 中按预期工作的代码: class MultipleBooleanField(forms.MultiValueField): def __init__(self,
我是一名优秀的程序员,十分优秀!