Есть ли функция для набора данных с привязкой к данным? - PullRequest
0 голосов
/ 31 мая 2011

Я создал редактируемый набор форм с несколькими полями одного типа.

Данные можно редактировать и отправлять.

Есть ли способ привязать этот набор форм к данным, чтобы обновления происходили автоматически?или

Нужно ли перебирать все редактируемые поля и обновлять их по отдельности?

1 Ответ

1 голос
/ 31 мая 2011

Я не на 100% то, что вы спрашиваете, но ваши данные поступают от модели?Если это так, Вы можете иметь наборы форм, привязанные к ModelForms, используя наборы форм модели

https://docs.djangoproject.com/en/dev/topics/forms/modelforms/#model-formsets

Так что если у вас есть модель:

class Product(models.Model):
    field_1 = models.CharField(...)
    field_2 ...
    ...

и форма модели:

class ProductForm(forms.ModelForm):
    field_1 = models.TextField(max_length=100)
    field_2 ...
    ...

    class Meta:
        model = Product

Вы можете создать набор форм из этой модели.Что-то вроде этого:

в вашем views.py

ProductFormSet = modelformset_factory(ProductForm)
if request.method=="POST":
    formset = ProductFormSet(request.POST)
    if formset.is_valid():
        formset.save()
    ...
else:
    formset = ProductFormSet()
...
return direct_to_template(request, 
    template = "foo.html",
    extra_context = { 'formset' : formset })

Это полезно, поскольку модели будут автоматически обновляться, когда набор форм будет POST'edи подтверждено.Он также знает, когда конкретный экземпляр был отредактирован в наборе форм, поэтому вы можете выполнять дальнейшую логику.

...