2017-12-08 12 views
0

양식을 제출하려고하면 "이 필드는 필수 항목입니다."라고 표시됩니다. 이미지 및 기타 세부 사항을 제공하더라도 이미지는 입니다.django의 ModelForm을 통해 이미지 업로드

forms.py 파일

from django.forms import ModelForm 
from .models import Status 

class CreatePost(ModelForm): 

    class Meta: 
     model=Status 
     fields = ["username","text","privacy","image"] 

models.py 파일

class Status(models.Model): 
    title=models.CharField(max_length=20,default="updated status") 
    username = models.ForeignKey('User',on_delete=models.CASCADE) 
    #username = models.CharField(max_length=20) 
    text = models.TextField(blank=True, null=True) 
    image = models.ImageField(upload_to="media/image",null=True) 
    time = models.DateTimeField(auto_now=True) 
    privacy = models.CharField(max_length=5, blank=True, null=True) 
    gid = models.IntegerField(blank=True, null=True) 
    dp = models.SmallIntegerField(blank=True, null=True) 

    class Meta: 
     #unique_together = (('username', 'dp'),) 
     #managed = False 
     db_table = 'status' 

view.py

def create_post(request): 
    form=CreatePost(request.POST or None) 
    if request.method=="POST": 
     if form.is_valid(): 
      instance=form.save(commit=False) 
      instance.time=time.time() 
      instance.save() 
      return redirect('post',) 

    return render(request,"uposts/createpost.html",{'form':form}) 

createpost.html는

{% extends "friendsbook/structure.html" %} 
{% block content %} 
<form action="" method="post"> 
    {%csrf_token %} 
    {{ form.as_p }} 
    <input type="submit" value="Save"> 
</form> 

{% endblock %} 

다른 모든 필드는 null이 될 수 있기 때문에 버튼

저장

enter image description here

을 클릭 한 후 난 단지 형태로 4 개 필드를 복용하고 한 말. 시간 필드에서 나는 시간을내어 views.py에서 처리했습니다.

+0

django의 어떤 버전입니까? – Walucas

+0

현재 나는 2.0에 있습니다 –

답변

0

당신이 추가 다중/폼 데이터와 같은 템플릿을 수정해야합니다 :

<form method="post" enctype="multipart/form-data"> 
{% csrf_token %} 
<input type="file" name="myfile"> 
<button type="submit">Upload</button> 
</form> 

및 views.py에서

, 당신은 request.FILES를 사용하여 업로드 된 파일에 액세스 할 수 있습니다.

+0

당신은 어떻게 내가 request.FILES –

+0

요청을 사용할 수 있습니다 보여줄 수 주시겠습니까?'myfile = request.FILES [ 'myfile']' –

+0

같은 자세한 내용은이 링크를 참조하십시오 : https://simpleisbetterthancomplex.com/tutorial/2016/08/01/how-to-upload-files-with-django.html –