简体   繁体   中英

How can I solve ValueError in django. Exception Value: ModelForm has no model class specified

This is my code;

django.models. my model.py file from django.db import models

class Product(models.Model):title = models.CharField(max_length=150)
    description = models.TextField(blank=True, null=True)
    price = models.DecimalField(decimal_places=2, max_digits=100000)
    summary = models.TextField(blank=True, null=False)
    featured = models.BooleanField(default=False)


forms.py    That's my full form.py file

from django import forms
from .models import Product

    class ProductForm(forms.ModelForm):

    class Meta:
        model = Product
        fields = [
            'title',
            'description',
            'price',
        ]



class RawProductForm(forms.ModelForm):
    title = forms.CharField()
    description = forms.CharField()
    price = forms.DecimalField()


**django.views** my django.views file

from django.shortcuts import render
from .models import Product
from .forms import ProductForm, RawProductForm


def product_create_view(request):
    my_form = RawProductForm()
    if request.method == 'POST':
        my_form = RawProductForm(request.POST)
        if my_form.is_valid():
            print(my_form.cleaned_data)
            Product.objects.create(**my_form.cleaned_data)
        else:
            print(my_form.errors)
        context = {'form': my_form}
        return render(request, "products/product_create.html", context)

**products_create.html** 

#this is my html file

    {% extends 'base.html' %}

{% block content %}
<form action="." method="POST">
    {% csrf_token %}
    {{ form.as_p }}
    <input type="submit" value="Save" />
</form>
{% endblock %}

In his code I'm trying to make a form but when I run python manage.py runserver at http://127.0.0.1:8000/create/ I'm getting ValueError This is a screenshot of my full error messagae

You need to specify your model class in your form:

class RawProductForm(forms.ModelForm):
 
    
    class Meta:
          model = Product
          fields = ["price","description" ,"title"]



view:

def product_create_view(request):
    my_form = RawProductForm()
    if request.method == 'POST':
        my_form = RawProductForm(request.POST)
        if my_form.is_valid():
            print(my_form.cleaned_data)
            Product.objects.create(**my_form.cleaned_data)
        else:
            print(my_form.errors)
        context = {'form': my_form}
        return render(request, "products/product_create.html", context)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM