я следующий FormView, который работал на то, что я хотел сделать, тогда:Джанго FormMixin не делает форму
class LearningObjectiveView(LoginRequiredMixin, FormView):
form_class = LearningObjectiveForm
template_name = 'learningobjective'
success_url = reverse_lazy('learning_objective')
def get_context_data(self, **kwargs):
trainee = Trainee.objects.get(user = self.request.user)
context = super(LearningObjectiveView, self).get_context_data(**kwargs)
context['learningobjective'] = LearningObjective.objects.filter(trainee = trainee.id)
context['topic'] = Topic.objects.filter(trainee = trainee.id)
return context
def get_form_kwargs(self):
kwargs = super(LearningObjectiveView , self).get_form_kwargs()
kwargs['user'] = self.request.user
return kwargs
def form_valid(self, form):
self.object = form.save(commit = False)
if self.request.user.is_authenticated():
self.object.trainee = Trainee.objects.get(user = self.request.user)
self.object.save()
form.save_m2m()
return super(LearningObjectiveView, self).form_valid(form)
Так как я хочу, чтобы включить нумерацию страниц, и теперь я только что видел пример на каждом ОЦК, но FormView, Я хотел использовать ListView с FormMixin.
ListView с FormMixin
class LearningObjectiveView(LoginRequiredMixin, FormMixin, ListView):
form_class = LearningObjectiveForm
template_name = 'learningobjective'
model = LearningObjective
success_url = reverse_lazy('learning_objective')
def get_context_data(self, **kwargs):
trainee = Trainee.objects.get(user = self.request.user)
context = super(LearningObjectiveView, self).get_context_data(**kwargs)
context['learningobjective'] = LearningObjective.objects.filter(trainee = trainee.id)
context['topic'] = Topic.objects.filter(trainee = trainee.id)
return context
def get_form_kwargs(self):
kwargs = super(LearningObjectiveView , self).get_form_kwargs()
kwargs['user'] = self.request.user
return kwargs
def form_valid(self, form):
self.object = form.save(commit = False)
if self.request.user.is_authenticated():
self.object.trainee = Trainee.objects.get(user = self.request.user)
self.object.save()
form.save_m2m()
return super(LearningObjectiveView, self).form_valid(form)
Видимо, это делает только данные контекста, но не формы я хочу использовать. Вы знаете, как решить эту проблему.
Большое спасибо за ваш ответ. Несмотря на это, не могли бы вы рассказать мне, как вы будете программировать решение для этого подхода. (Разбитый список и форма на том же сайте). Приветствуются лучшие практики и решения :) – ZedsWhatSheSaid