Проблема с внесением формы в бд django
Пишу приложение с картой столов Имеется проблема с внесением данных в бд через форму в django
models.py
class Table(models.Model):
table_id = models.IntegerField('Id', primary_key=True)
max_places = models.IntegerField('Максимальное кол-во мест', default=6)
price = models.IntegerField('Цена', default=6000)
busy = models.BooleanField(default=False)
forms.py
class UpdateForm(forms.Form):
max_places = forms.IntegerField()
price = forms.IntegerField()
busy = forms.BooleanField()
class Meta:
model = Table
fields = ['max_places', 'price', 'busy']
views.py
def update(request, pk):
if request.method == "POST":
form = UpdateForm(request.POST)
if form.is_valid():
cd = form.cleaned_data
pc = Table(
max_places=cd['max_places'],
price=cd['price'],
busy=cd['busy'],
)
pc.save()
username = form.cleaned_data.get('username')
return redirect('tables-main-2')
else:
form = UpdateForm()
Выдаёт ошибку IntegrityError at /tables/331/update
NOT NULL constraint failed: table_table.places
Проблему решил, но немного не до конца
если нужно создать НОВУЮ запись, нужно указать все поля, какие есть в файле models.py
forms.py
class Table(models.Model):
table_id = models.IntegerField('Id', primary_key=True)
num = models.CharField('Стол', max_length=3)
places = models.IntegerField('Кол-во мест')
max_places = models.IntegerField('Максимальное кол-во мест')
low_price = models.IntegerField('Цена')
price = models.IntegerField('Цена агента/промо')
coord = models.CharField('Координаты', max_length=256)
busy = models.BooleanField(default=False)
views.py
def update(request, pk):
if request.method == "POST":
form = UpdateForm(request.POST)
if form.is_valid():
cd = form.cleaned_data
pc = Table(
num='123'
places=123
max_places=123
low_price=123
price=123
coord='123'
busy=True
)
pc.save()
Ввести значения можете уже с формы