0
votes

Télécharger des images via Form.py

Si je télécharge l'image via mon tableau de bord d'administration, l'image sera téléchargée avec succès, elle apparaîtra dans le dossier multimédia dans mon répertoire de projet que j'ai spécifié dans Paramètres.py. Mais si je télécharge une image via Form.py en tant qu'utilisateur, tous les autres champs sont enregistrés à l'exception du champ Image. J'ai essayé la plupart des solutions sur Stackoverflow, ne sais pas pourquoi la mienne ne fonctionne pas.

Tout en débogage, j'ai fait de la majeure partie d'un champ obligatoire, donc il a jeté cette erreur: ValueError: the View Products.Views.Produits n'a pas retourné d'objet httpresponse. Il ne renvoya aucun à la place. Em> p>

form.py strong> p> xxx pré>

vues.py strong > p> xxx pré>

add_product strong> p> xxx pré>

paramètres.py strong>

from django.contrib import admin
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('plugs.urls')),
    path('products/', include('products.urls')),
    path('home/', include('cart.urls')),
    # path('products/', include('products.urls')),
]
urlpatterns += staticfiles_urlpatterns()
if settings.DEBUG:
    urlpatterns +=static(settings.MEDIA_URL,
                         document_root = settings.MEDIA_ROOT)


2 commentaires

n'utilisez pas "#", spécifiez une action, cela peut aider


Merci, j'ai fait ça. Le problème est toujours là.


3 Réponses :


0
votes

OK mieux changez votre vue sur

if request.method == 'POST':
            form = ProductForm(request.POST or None, request.FILES or None)
            if form.is_valid():
                instance = form.save(commit=False)
                instance.name = form.cleaned_data['name']
                instance.mainimage = form.cleaned_data['mainimage']
                instance.category = form.cleaned_data['category']
                instance.preview_text = form.cleaned_data['preview_text']
                instance.detail_text = form.cleaned_data.get['detail_text']
                instance.price = form.cleaned_data['price']
                instance.Quantity = form.cleaned_data['Quantity']
                instance.save()
                


5 commentaires

J'ai mis à jour ma vue de poste, il a jeté cette erreur: attributError: '' produitform 'objet n'a pas d'attribut' Demande '


Il a soulevé cette erreur TypeError: "intégré_function_or_method" objet n'est pas syndicalable


form.cleaned_data.get ['détailler_text'] Typo ici ... réparez-le.


Il a couru, mais ne pouvait toujours pas télécharger une photo. Je suis allé à l'administrateur, aucune image trouvée


pouvez-vous essayer demande.files ['Maintimage'] au lieu de form.cleaned_data ['Maintimage']



0
votes

est votre media_dir défini dans vos paramètres.py?

MEDIA_DIR = os.path.join(BASE_DIR, '/static/media/')

p>


1 commentaires

Oui, si je télécharge une image de l'administrateur pour enregistrer dans le dossier. Je doute si le problème est de là.



0
votes

ValueError: View Products.Views.Products n'a pas renvoyé d'objet HTTPresponse. Il n'est rentré pas à la place. Vous signifie quelque part dans vos vues, vous ne retournez pas une réponse HTTP. Essayez d'indenter la dernière ligne de votre vue au même niveau que sinon. Il peut résoudre


0 commentaires