Я пытаюсь создать приложение Django для ввода научных данных, но сталкиваюсь с проблемами, когда придумываю элегантный способ описания возможных форм.
У меня есть две модели, HCameraImage и MCameraImage, которые наследуются от модели Image. На сайте пользователь может заполнить формы HTML, которые заполняют любую из этих двух моделей. Другими словами, я использую HCameraImageForm (request.POST) для заполнения модели. Когда я отправляю его клиентской стороне, мне приходится вручную отслеживать, какой тип формы отправляется в Django, добавляя тип изображения к данным POST:
if request.POST['imagetype'] == "HCameraImage":
form = HCameraImageForm(request.POST)
form.save()
if request.POST['imagetype'] == "MCameraImage":
form = MCameraImageForm(request.POST)
form.save()
...etc
Есть ли более элегантный способ справиться с этим? В идеале я хочу иметь родительский базовый класс Image, который позволяет мне:
i = Image()
i.loadFormData(request.POST)
, где loadFormData вызывает правильную производную функцию.