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> vues.py strong > p> add_product strong> p> 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)
3 Réponses :
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()
J'ai mis à jour ma vue de poste, il a jeté cette erreur: attributError: '' produitform 'objet n'a pas d'attribut' Demande ' i>
Il a soulevé cette erreur TypeError: "intégré_function_or_method" objet n'est pas syndicalable i>
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']
est votre media_dir défini dans vos paramètres.py?
MEDIA_DIR = os.path.join(BASE_DIR, '/static/media/')
p>
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à.
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 p>
n'utilisez pas "#", spécifiez une action, cela peut aider
Merci, j'ai fait ça. Le problème est toujours là.