Пример #1
0
    def post(self, request):
        user = request.user
        form = FieldForm(request.POST)

        if form.is_valid():
            cd = form.cleaned_data
            field = form.save(commit=False)
            field.user = user
            field.save()

            return redirect('/fields/')

        messages.add_message(request, messages.INFO,
                             'Поле с таким именем уже существует!')

        return render(request, 'fields/field_add.html', {'form': FieldForm()})
Пример #2
0
    def __init__(self, request=None, instance=None):
        field = instance  # alias
        post = None if not request else request.POST

        self.form = FieldForm(post, instance=field)
        self.optionsFormset = None

        # Создание формсета, если необходимо
        if not field or (field and field.fieldType == 'list'):
            # Используем form=<наш базовый класс формы>!
            OptionsFormset = inlineformset_factory(Field,
                                                   FieldOption,
                                                   form=ModelForm)
            #
            # Передаём instance=form.instance, а не field.  В качестве field мог
            # быть передан None; в этом случае пустой instance создаётся внутри
            # конструктора формы.
            #
            # При выполнении сохранения формсет пунктов списка будет обращаться к
            # заданному instance за идентификатором динамического поля.  В случае,
            # когда на странице добавляется новое динамическое поле (а не редактируется
            # существующее), особо важно, чтобы instance, на который ссылаются форма
            # и формсет, был одним объектом, чтобы формсет узнал идентификатор
            # вновь добавленной записи.
            #
            self.optionsFormset = OptionsFormset(post,
                                                 instance=self.form.instance)
Пример #3
0
    def post(self, request, slug):
        instance = get_object_or_404(Field, slug=slug)
        form = FieldForm(request.POST, instance=instance)

        if form.is_valid():
            form.save()

            return redirect('/fields/{}/'.format(slug))

        messages.add_message(request, messages.INFO, 'Данные неккоректны')

        return render(request, 'fields/field_add.html', {'form': FieldForm()})


# class CropView(View):
#     def get(self, request):
#         crops = Field.objects.prefetch_related().all()
#
#         for crop in crops:
#             print('{}'.format(crop.name, crop.season))
#
#         return render(request, 'fields/field_add.html', {'form': FieldForm()})
Пример #4
0
    def get(self, request, slug):
        instance = get_object_or_404(Field, slug=slug)

        return render(request, 'fields/field_add.html',
                      {'form': FieldForm(instance=instance)})
Пример #5
0
 def get(self, request):
     return render(request, 'fields/field_add.html', {'form': FieldForm()})