Я нахожусь 1 год на CS, так что простите мою бодрость, если я совершенно неясен.Обновите несколько объектов с помощью набора форм
У меня есть несколько объектов из моей модели «Продукты». Теперь я хотел бы обновить одно и то же поле на всех объектах, поле «количество» с разными значениями. Но вместо того, чтобы входить и выходить из каждого продукта, как с updateview, я хотел бы перечислить все продукты и установить значение для каждого и изменить их одновременно. Насколько я вижу, «FormSet» должен делать трюк?
Моя категория модель выглядит следующим образом (для назначения продукта)
class Category(models.Model):
category = models.CharField(max_length=30)
def __str__(self):
return self.category
Моя модель продукта выглядит следующим образом:
class Product(models.Model):
title = models.CharField(max_length=200)
description = models.CharField(max_length=200)
category = models.ForeignKey(Category)
price = models.DecimalField(max_digits=5, decimal_places=2)
stock = models.PositiveIntegerField()
def __str__(self):
return self.title
Мой взгляд обновление для обновления одного продукта выглядит следующим образом:
class UpdateProductView(UpdateView):
model = Product
form_class = ProductForm
template_name = "product_form.html"
success_url = '/products'
class CreateCategoryView(FormView):
template_name = "category_form.html"
form_class = CategoryForm
Я прочитал документацию по набору форм, но я должен признать, что я не чувствовал себя умнее о том, как на самом деле использовать его впоследствии .. может кто-нибудь дать руку?
Ах, да, конечно, я имел в виду «запас», а не количество. Я могу определить это как отдельную функцию или сделать для этого новый вид? Я считаю это немного запутанным: D – PaFko
Он работает как формы в Django, вы можете привязывать данные, проверять каждую форму внутри набора форм с помощью метода .is_valid() и т. Д., Но сначала вы должны создать класс с фабрикой, а не объявлять его. Если вы действительно хотите понять, как это работает, попробуйте реализовать его самостоятельно с простым представлением. Пример в документах здесь https://docs.djangoproject.com/en/1.9/topics/forms/formsets/#using-a-formset-in-views-and-templates. Затем вы можете попробовать использовать общие представления из 'django приложение -extra-views' –