0
Ich versuche, ein Bild über die ImageField hochladen. Ich bekomme http 200, aber das Bild wird nicht gespeichert.Django Bild nicht speichern
Mein Modell ist:
class RestaurantProfile(BaseModel):
username = models.OneToOneField(User, on_delete=models.CASCADE)
name = models.CharField(max_length=100)
phone = models.CharField(max_length=15)
address = models.TextField(default='', blank=True)
restaurant_image = models.ImageField(upload_to='restaurants', blank=True, null=True)
Meine Form ist:
class UpdateDetailsForm(forms.Form):
phone = forms.CharField(widget=forms.NumberInput(attrs={'class': 'form-control input-glass', 'id': 'phone',
'placeholder': 'Contact No'}))
address = forms.CharField(widget=forms.Textarea(attrs={'class': 'form-control input-glass', 'id': 'address',
'placeholder': 'Address'}))
restaurant_image = forms.ImageField()
Meine Ansicht Code ist:
def updatedetails(request):
current_user = request.user.id
rest = RestaurantProfile.objects.get(username=current_user)
rid = rest.id
if request.method == 'POST':
print("fas")
form = UpdateDetailsForm(request.POST, request.FILES)
print(request.FILES)
if form.is_valid():
data = form.cleaned_data
print(data)
phone = data["phone"]
address = data["address"]
image = data["restaurant_image"]
RestaurantProfile.objects.filter(id=rid).update(phone=phone, address=address, restaurant_image=request.FILES['restaurant_image'])
return redirect('dashboard')
else:
print(form.errors)
else:
form = UpdateDetailsForm()
return render(request, "updatedetails.html", {'form': form})
In meinem setting.py, ich habe hinzugefügt:
# Media files
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
Im url.py habe ich hinzugefügt:
urlpatterns += staticfiles_urlpatterns()
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Enthält Ihr
Ich habe enctype = "multipart/form-data" –