我正在尝试实现一个简单的UpdateView,但是我想使用自己的模板。使用djangos auto_population是有效的,但不是我想要的,因为我有很多格式不同的字段。
<form method="post" action="#">
{% csrf_token %}
{{ form.as_p }}
<input type="submit">
</form>
但是我想使用自己的表单模板,如下所示:
edit_template.html
<form class="form-horizontal" role="form" method="POST" action="{% url 'update' pk=abc %}">
{% csrf_token %}
<input name='varX' id="varX" type="text" placeholder="" class="form-class">
<input name='varY' id="varY" type="text" placeholder="" class="form-class">
</form>
views.py
class ModelUpdate(UpdateView):
model = MyModel
fields = ['varX','varY']
现在,我希望用我的对象数据填充该表单,但是该表单为空。
UpdateView还将数据两次传递给模板:一个作为“对象”,另一个作为“ mymodel”。
我也尝试过更新
get_context_data
通过添加
context.update( model_to_dict(myModelData))
但这也不会改变任何东西。
如何使用基于djangos类的视图填充自定义表单?
答案 0 :(得分:0)
看看django-widget-tweaks,您首先需要检查任何非字段错误,然后逐个循环检查字段。
https://simpleisbetterthancomplex.com/article/2017/08/19/how-to-render-django-form-manually.html
本文应该仅涉及
答案 1 :(得分:0)
尝试一下:
function src($object,$slug,$thumb_size = null) {
$table = $object->getTable();
$width = ($thumb_size)?explode('/',$thumb_size)[0]:false;
$height = ($thumb_size)?explode('/',$thumb_size)[1]:false;
if($attachment = $object->attachments($slug)->first()) {
if($width && $height) {
$src = url("/uploads/".$table."/thumb_{$width}-{$height}_".$attachment->file);
} else {
$src = url("/uploads/".$table."/".$attachment->file);
}
} else {
if($width && $height) {
if(file_exists("uploads/defaults/thumb_{$width}-{$height}_default.png")) {
$src = url('')."/uploads/defaults/thumb_{$width}-{$height}_default.png";
} else {
Image::make("default.png")->fit($width,$height)->save("uploads/defaults/thumb_{$width}-{$height}_default.png");
$src = url('')."/uploads/defaults/thumb_{$width}-{$height}_default.png";
}
} else {
$src = url('')."/default.png";
}
}
return $src;