Это моя форма:
class UploadForm(forms.ModelForm):
upload_what = forms.URLField()
upload_what.widget.attrs.update(size = '100')
Так что все просто, после того, как пользователь вставит link
, мне нужно проверить, представляет ли ссылка cat
или dog
и в зависимости от этих результатов я буду загружать новый объект cat
или dog
в свою базу данных после того, как я выполню некоторые конкретные шаги.
Мой вопрос:
Куда мне поместить все этологика?В view
, в form
или в model
?Помните, что модели cat
и dog
имеют разные поля, и в фоновом режиме будет некоторая обработка, чтобы выяснить, чем должны быть заполнены эти поля.
Я читал, что практика заключается в размещениився логика в models
(толстые модели), но здесь я действительно не знаю, какую модель я буду использовать, когда пользователь нажимает кнопку Submit
.
Например, в моем views.py
это может выглядеть примерно так:
def post(self,request,*args,**kwargs):
form = self.form_class(request.POST)
if form.is_valid():
link = form.cleaned_data['upload_what']
if link == "cat":
name = "some cat name"
legs = #do some logic here
# save cat to database
elif link == "dog":
#... some other logic here
#save dog to database
return HttpResponseRedirect('/success/')