Python 如何自定义模型表单填充数据
我有这个模型:Python 如何自定义模型表单填充数据,python,django,django-forms,Python,Django,Django Forms,我有这个模型: class Gallery(models.Model): HeadImage = models.ImageField(upload_to="gallery") 使用此表格: class GalleryForm(ModelForm): class Meta: model = Gallery 这种观点: gform = GalleryForm(request.POST, request.FILES, instance=galleryInstance)
class Gallery(models.Model):
HeadImage = models.ImageField(upload_to="gallery")
使用此表格:
class GalleryForm(ModelForm):
class Meta:
model = Gallery
这种观点:
gform = GalleryForm(request.POST, request.FILES, instance=galleryInstance)
在模板中显示一个已填写的表单。对于HeadImage
字段,它显示与HeadImage
字段相关的图像链接,以及带有change
标签的文件输入:
{{ gform.HeadImage }}
现在,我想把图片放到img
标签中,而不是图片的链接。我在模板中执行以下操作:
<img src={{ gform.HeadImage.value }}/>
我应该怎么做才能使链接不显示在表单中?要防止它显示,请使用以下三个选项之一:
editable=False
李>
ModelForm
的内部Meta
类的字段
属性ModelForm
的内部Meta
类的exclude
属性使用哪一个取决于您希望字段显示的频率(从不,或在某些情况下)。有关这方面的详细信息,请参阅。尝试在模型中为HeadImage字段设置editable=False editable=False不起作用,请注意,这是一个编辑表单!editable=false不起作用,对于其他2种解决方案,我在您建议的文档中找不到任何方法。指定例如
exclude
:model=Gallery;exclude=('Head_Image',)
应防止在使用表单时显示该字段的表单条目。但是,我觉得我误解了这个问题:你能详细说明一下“我该怎么做才能使链接不显示在表单中?”你的确切意思是什么?我的意思是,当我的页面中显示画廊填充的表单时,它会自动将头像的当前值显示为链接,并显示一个输入文件以更改当前值,我不想让它显示这个链接。记住我用这个在我的模板中显示HeadImage:{{gallery\u form.HeadImage}}也许你应该自己创建一个表单,而不是使用ModelForm
:类GalleryForm(forms.form):HeadImage=forms.ClearableFileInput()
。提供一些初始值,并在模板中手动构造表单。在视图中,您必须解构它并更新您的模型,但如果Django的标准表单生成器不起作用,这可能是您唯一的选择。我可以解决在模板中编写手动代码的问题,但主要问题是我有一个与名为Images的模型相关的图像集,该模型会自动添加新的输入文件进行填充,我不能让它成为手动的。对于一个有一组图像的表单集,我如何才能做到这一点?