Django:表单数据未保存

时间:2017-01-17 17:27:23

标签: python django python-3.x django-forms django-1.10

我有form用户只需上传图片,但问题是我选择图片并按下按钮提交。虽然我已经指出了图像,但它在页面上显示This field is required.。这就是它所做的一切。我检查了它是否实际提交但不是,它不是。可能是什么问题?

Models.py

class pic(models.Model):
    username = "anonymous"
    picpost = models.ImageField(upload_to='anon_pics')
    creation_date = models.DateTimeField(auto_now_add=True)

forms.py

from django import forms
from .models import pic

class PicForm(forms.ModelForm):
    class Meta:
        model = pic
        fields = [
            "picpost"
        ]

view.py

def pic_create(request):
    form = PicForm(request.POST or None)
    if form.is_valid():
        instance = form.save(commit=False) 
        instance.save()
    context = {
        "form" : form,
    }
    return render(request, "create_pic.html", context)

create_pic.html

<body>
    <form method='POST' action=''>{% csrf_token %}
        {{ form.as_p }}
        <input type='submit' value='Upload Picture' />
    </form>
</body>

非常感谢任何帮助。非常感谢你!

1 个答案:

答案 0 :(得分:2)

这里有两个问题。

首先,您的观点需要将request.FILES以及request.POST传递给表单。

其次,模板中的表单元素需要包含enctype="multipart/form-data"