Piszę moją pierwszą aplikację w Django i mam problem z create_object
Widok ogólny; W moim urls.py
, mam:Rozszerzanie ogólnych widoków Django
(r'^new$', CreateView.as_view()),
Problemem jest to, że gdy użytkownik podnosi „nowe” formy, muszę manipulować dane, które zostaną zapisane do bazy danych (I rzeczywiście trzeba dodać user_id
zagraniczny klawisz); bez widoki generyczne kiedyś napisać:
form = ClientForm(request.POST)
if form.is_valid():
data = form.save(commit=False)
data.user = request.user
data.save()
form.save_m2m()
moim zdaniem (wypowiedzenia data.user=request.user
). Przeszukałem dokumenty Django, ale nie mogę znaleźć sposobu, aby to zrobić (być może rozszerzając klasę CreateView
) - w książce znajduje się tylko przykład, który przesłania metodę get_object
klasy ListView
, aby zaktualizować pole last_accessed_date
.
Oto "Wykonywanie dodatkowej pracy", gdzie wyjaśnia, że metoda get_object może zostać nadpisana przez rozszerzenie klasy [link] (https://docs.djangoproject.com/en/dev/topics/class-based-views/#performing-extra-work) –