Средства обработки ошибок Django MultiValueDictKeyError
Я работаю над приложением django, в котором я должен хранить загруженные медиа в root/media и получаю следующую ошибку:
'media'
Request Method: POST
Request URL: http://127.0.0.1:8000/home
Django Version: 3.2.6
Любая помощь или подсказки были бы очень признательны!
кодviews.py:
def home(request):
form = PostForm()
signupform=SignupModelForm()
comments=CommentForm()
post=Post.objects.all()
commentall=Comments.objects.all()
member = Member.objects.all()
user = User.objects.all()
if request.method == "POST":
form = PostForm(request.POST,request.FILES)
comments=CommentForm(request.POST)
if form.is_valid() and request.POST['action']=='posting':
data=form.save(commit=False)
data.user = request.user
data.media = request.POST['media']
data.save()
print("posted status")
return redirect("/home")
код home.html:
<form method="post" enctype="multipart/form-data" style="float:left; width:100%; margin-left: -10%;">
{% csrf_token %}
{{ form.as_p }}
<button type="submit" name="action" value="posting">Post</button>
</form>
Спасибо!
edit forms.py
from django import forms
from django.core.exceptions import ValidationError, ViewDoesNotExist
from django.contrib.auth import get_user_model
from django import forms
from django.contrib.auth.forms import UserCreationForm, UsernameField
from django.db.models.fields import CharField
from django.forms.widgets import PasswordInput
from .models import *
User = get_user_model()
username=forms.CharField(max_length=50,help_text=None,required=True)
class SignupModelForm(UserCreationForm):
username= forms.CharField(required=True,label_suffix=None )
class Meta:
model = User
fields = (
'first_name',
'last_name',
'email',
'username',
'user_type'
)
class PostForm(forms.ModelForm):
media= forms.ImageField(required=False)
class Meta:
model = Post
fields=(
'content',
'media',
)
class CommentForm(forms.ModelForm):
content= forms.CharField(label="")
class Meta:
model = Comments
fields=(
'content',
)
модели:
и настройки
Возможно, я неправильно сделал settings.py, но, похоже, дело в сохранении данных формы, поскольку они не сохраняются в media/ также