Python 选中复选框“编辑表单时已保存的值”
用户将能够列出其财产,并且他/她将能够编辑列表 问题 编辑时,所有其他字段将显示用户已保存的数据,只有Python 选中复选框“编辑表单时已保存的值”,python,django,django-models,django-forms,Python,Django,Django Models,Django Forms,用户将能够列出其财产,并且他/她将能够编辑列表 问题 编辑时,所有其他字段将显示用户已保存的数据,只有便利设施字段不会显示“已选择的值” 便利设施字段的所有值都保存在文本字段中,用户可以通过“CheckboxSelectMultiple”小部件选择多个项目 模型 class Motel(models.Model): user= models.ForeignKey(User) name= models.CharField(max_length=100, verbose_name='
便利设施
字段不会显示“已选择的值”
便利设施
字段的所有值都保存在文本字段中,用户可以通过“CheckboxSelectMultiple”小部件选择多个项目
模型
class Motel(models.Model):
user= models.ForeignKey(User)
name= models.CharField(max_length=100, verbose_name='Name')
amenities= models.TextField()
我在表单字段小部件中添加了“checked”,但它只会检查所有项目
class MotelForm(forms.ModelForm):
amenities = forms.MultipleChoiceField(choices=FACILITY_CHOICES, required= False, widget=forms.CheckboxSelectMultiple(attrs={'checked':'checked'}))
观点
我想在“编辑表单”中显示用户已选择/保存的项目。我缺少什么?在
汽车表单的元中
在字段中添加便利设施
class MotelForm(forms.ModelForm):
amenities = forms.MultipleChoiceField(choices=FACILITY_CHOICES, required=False, widget=forms.CheckboxSelectMultiple())
class Meta:
model = Motel
fields = ['name', 'amenities', ...]
现在,当您通过实例时,它应该加载已经选择的值。我不理解您的方法TextField
是一组文本,multiplechicefield
是一组复选框。你怎么能假设一个复选框列表会被保存到一个文本块中呢。即使我把它放在一个CharField中,它仍然可以保存。我不想继续写一个充满100个项目的模型,而我可以用一行代码来保存和检索。它是这样保存的[你的无线互联网,你的空调,你的游泳池,你的电视]。Django没有明确说明可以保存在字段中的“唯一”数据。这是我的观点的一部分。您将选项保存为字符串,但没有django文档说django足够聪明,可以将字符串恢复到复选框列表中。这就是我来这里寻求建议的原因。我做了一个简单的研究,发现:我试过,但它不起作用。还是一样。这些字段是否与通过实例后加载名称之类的便利设施不同?是的。。除了康乐场地外,它们都工作得很好。
class MotelForm(forms.ModelForm):
amenities = forms.MultipleChoiceField(choices=FACILITY_CHOICES, required=False, widget=forms.CheckboxSelectMultiple())
class Meta:
model = Motel
fields = ['name', 'amenities', ...]