Проверка формы при отправке двух форм

Я столкнулся с подобной проблемой при построении сетки графиков. Графики состояли из двух частей (сверху и снизу). Предполагалось, что Y-метка была сосредоточена по обеим частям.

Я не хотел использовать решение, которое зависит от знания положения на внешней фигуре (например, fig.text ()), поэтому я манипулировал y-позиция функции set_ylabel (). Это обычно 0,5, середина графика, к которой он добавлен. Поскольку заполнение между частями (hspace) в моем коде было нулевым, я мог рассчитать середину двух частей относительно верхней части.

import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec

# Create outer and inner grid
outerGrid = gridspec.GridSpec(2, 3, width_ratios=[1,1,1], height_ratios=[1,1])
somePlot = gridspec.GridSpecFromSubplotSpec(2, 1,
               subplot_spec=outerGrid[3], height_ratios=[1,3], hspace = 0)

# Add two partial plots
partA = plt.subplot(somePlot[0])
partB = plt.subplot(somePlot[1])

# No x-ticks for the upper plot
plt.setp(partA.get_xticklabels(), visible=False)

# The center is (height(top)-height(bottom))/(2*height(top))
# Simplified to 0.5 - height(bottom)/(2*height(top))
mid = 0.5-somePlot.get_height_ratios()[1]/(2.*somePlot.get_height_ratios()[0])
# Place the y-label
partA.set_ylabel('shared label', y = mid)

plt.show()

picture

Недостатки:

  • Горизонтальное расстояние до графика основано на верхней части, нижние тики могут распространяться на метку.
  • Формула не
  • Выдает исключение, если высота верхней части равна 0.

Возможно, существует общее решение, которое принимает отступы между фигурами во внимание.

0
задан Huzaif Sayyed 17 January 2019 в 07:38
поделиться

1 ответ

Вы должны подтвердить две формы, как показано ниже

def post(self, request, pk, *args, **kwargs):
     form = ClockOutForm(request.POST, instance=TimesheetEntry.objects.get(id=pk))
     form_hour = ClockOutHourForm(request.POST)

     if form.is_valid() and form_hour.is_valid():
         # your business logic
         return HttpResponseRedirect(self.success_url)

     return render(request, self.template_name, {'form': form, 'form_hour':form_hour})
0
ответ дан Anjaneyulu Batta 17 January 2019 в 07:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: