这个问题类似于
Using multiple input fields for one model's attribute with django
和
How to render two form fields as one field in Django forms?
我所需要的基本上与MultiValueField相反,在这里我可以将数据从一个表单字段-名称保存到两个模型字段-名字,Lastname 中。我找不到类似MultiValueField的东西。
有人可以建议我这样做的更好方法是什么。
答案 0 :(得分:1)
为什么不在 Form 中定义name
字段,并覆盖save方法以将其保存到模型字段中,如下所示:
class SomeForm(forms.ModelForm):
name = forms.CharField(max_length=255, required=True)
class Meta:
model = YourModel
fields = ['name', 'and_other_fields']
def save(self, commit=True)
instance = super(SomeForm, self).save(commit=False)
_name = self.cleaned_data.get('first_name').split(' ')
instance.first_name = _name[0]
instance.last_name = ' '.join(_name[1:])
instance.save()
return instance
答案 1 :(得分:0)
假设,用户将输入名字和姓氏,并用空格分隔。您可以使用此:
u_name = YourModelName()
name = request.POST['name'].split(" ") # give attribute name in html and use that name here
first_name = name[0]
last_name = name[1]
u_name.first_name = first_name
u_name.last_name = last_name
u_name.save()
您可以使用任何方法来保存数据。只需使用split。