Я пытаюсь настроить форму в Django и сохранять данные в моей базе данных без использования ModelForm. Моя форма работает, но часть, на которую я застрял, - это обработка данных формы и сохранение ее в представлении. Как вы можете видеть, после «if form.is_valid():« Я застрял и не могу придумать правильный код.Сохраните данные формы в Django
# models.py
from django.db import models
class Listing(models.Model):
business_name = models.CharField(max_length=80)
business_email = models.EmailField()
business_website = models.CharField(max_length=80)
business_phone = models.CharField(max_length=80)
# forms.py
from django import forms
class NewBusinessForm(forms.Form):
business_name = forms.CharField(label='Business Name', max_length=100)
business_phone = forms.CharField(label='Phone Number', max_length=100)
business_email = forms.EmailField(label='Email Address', max_length=100)
business_website = forms.CharField(label='Web Site', max_length=100)
# views.py
from django.shortcuts import render
from django.http import HttpResponseRedirect
from .forms import NewBusinessForm
def new_business(request):
if request.method == 'POST':
form = NewBusinessForm(request.POST)
if form.is_valid():
# process form data
return HttpResponseRedirect('/')
else:
form = NewBusinessForm()
return render(request, 'directory/new.html', {'form': form})
не забудьте ввести в листинг модель –
Это сработало, спасибо! Большинство людей ставят эту логику в views.py? Или лучше включить его в forms.py как функцию? – Casey
@Casey, в основном это должно быть сделано с использованием форм модели. Или, если хотите, вы можете поместить эту логику в метод 'form.save()'. – Rohan