AttributeError at / type object 'Form' has no attribute 'objects', how to fix?
AttributeError at / type object 'Form' has no attribute 'objects', я новичок в django, буду признателен за краткое объяснение
views.py
from django.shortcuts import render,redirect
from django.contrib import messages
from .forms import *
def main(request):
if request.method == "POST":
form = Form(request.POST)
if form.is_valid():
Form.objects.get_or_create(
name=form.cleaned_data['name'],
email=form.cleaned_data['email'],
phone=form.cleaned_data['phone']
)
messages.success(request, 'Form has been submitted')
return redirect('/')
else:
return HttpResponse("Invalid data")
else:
form = Form()
return render(request, 'app/main.html', {'form': form})
models.py
class ModelsForm(models.Model):
name = models.CharField(max_length=30)
email = models.CharField(max_length=30)
phone = models.CharField(max_length=30)
objects = models.Manager()
forms.py
from .models import ModelsForm
class Form(ModelForm):
class Meta:
model = ModelsForm
fields = '__all__'```
Вы вносите путаницу: ваша модель названа ModelsForm
, что говорит о том, что это форма, а не модель. Если вы таким образом хотите получить объекты, с которыми можно работать:
ModelsForm.objects.get_or_create(
name=form.cleaned_data['name'],
email=form.cleaned_data['email'],
phone=form.cleaned_data['phone']
)
Но я настоятельно советую переименовать ваши модели в имена, которые не намекают на то, что это формы, представления, админы и т.д.