【发布时间】:2021-04-21 07:50:27
【问题描述】:
这可能是个愚蠢的问题,但是在不调用表单的情况下使用输入是否可以。
我的表单
class st_image(forms.ModelForm):
pro_img =forms.ImageField(widget=forms.FileInput(attrs={"id" :"upload_image", "class":"form-control image"}))
class Meta:
model=CustomUser
fields= [ 'pro_img']
我的观点
def st_profile_img(request):
pk = request.user.id
obj = get_object_or_404(CustomUser, pk=pk)
form=st_image(request.POST or None,request.FILES or None, instance=obj)
if request.method == 'POST':
if(form.is_valid()):
form.save()
messages.success(request, "Амжилттай бүртгэлээ")
return HttpResponseRedirect(reverse('st_profile'))
else:
messages.error(request, "Зөвхөн зураг хийнэ үү")
return HttpResponseRedirect(reverse('st_profile'))
我的模板
<form method="POST" action="{% url 'st_profile_img' %}" enctype="multipart/form-data"
id="image-form">
{% csrf_token %}
<label for="upload_image" class="text-center student-profile-img">
<img id="uploaded_image" class="image-responsive" src="{{ user.pro_img.url }}" alt="">
<div class="overlay">
<div class="text">Засах</div>
</div>
<input type="file" name="pro_img" class="image" id="upload_image"
oninput="uploadImage()" style="display: none;" accept="image/x-png,image/jpeg" />
</label>
</form>
如您所见,我没有使用 {{form}},所以可以使用这样的输入(使用与预期表单输入相同的名称)吗?
或者是否有任何正确的方法可以使用form调用输入名称? (除了 request.POST.get 并且不使用 attrs)
【问题讨论】:
-
手动放置字段是可以的,没有问题,你的选择。
标签: django django-forms