我的DJango模板中有以下代码,其中div和输入类型文件的格式相同,因此当您点击图像时,将显示上传窗口。
<div class="prof" style="background:url(https://c1.staticflickr.com/3/2669/5830411257_b21bf9e931_b.jpg);background-size:cover">
<input type="file" id="uploadpic" class="uploadpic" />
</div>
演示:
http://jsfiddle.net/sathish_opr/s54uxkx9/
我的要求是我可以在Django模型中将此模板的输入类型文件用作FileField,以便可以访问此输入文件html标记的upload_to。
我正在寻找类似的一些工作模型,但还无法找到。 怎么可能这样呢?有什么建议吗?
在我的 Models.py
中class td_profpic(models.Model):
id = models.CharField(max_length=300,blank=True)
propicpath = models.FileField(upload_to=get_upload_file_name)
class Meta:
managed = False
db_table = "td_profpic"
def get_upload_file_name(instance,filename):
return "%s_%s" % (str(time()).replace('.','_'),filename)
在这种情况下,如何将模板的输入类型文件标签与模型字段(FileField - propicpath)联系起来?
答案 0 :(得分:0)
你可以使用Django ModelForm。
为您的模型创建表单&#39; td_profpic&#39;用:
from django.forms import ModelForm
# import your model from your application
Class td_profpicForm(forms.Form):
model= td_profpic
之后,在您的观点中导入此表单:
from forms import td_profpicForm
并通过创建视图并将此表单作为上下文发送给模板
在Django模板中,将此表单呈现为{{form.as_p}}或{{form.as_table}},它将自动为您创建一个表单。
您不需要为自己创建自定义字段。