0

Я довольно новичок в CBV, и у меня есть следующий вопрос: Я вижу, что есть CreateView, который покажет вам «пустую» форму для создания новой записи в базе данных, и есть UpdateView, который покажет вам форму для существующей записи для обновления.Django Class Based View: получение последней просмотренной записи

Что мне нужно, это его смесь: представить пользователю форму для последней просмотренной/обновленной записи, но если в базе данных еще нет записей (например, новый пользователь), представьте пользователю по умолчанию («пустая») форма.

Итак, есть 2 балла здесь:

  1. Есть модель, которая содержит наконец просматривалась/обновленную запись для каждого пользователя: какова должна быть эта модель?

  2. Имейте представление, позволяющее представить формы, как указано выше. Есть ли общий или полу-общий способ сделать это в Django? Какой CBV я должен использовать?

Спасибо.

+0

Можете ли вы подробно остановиться на «последней просмотренной записи»? Как бы вы это определили? –

ответ

1

Я не проверял это, поэтому не уверен, что это сработает.

from django.views.generic.edit import ModelFormMixin, ProcessFormMixin 

class MyView(ModelFormMixin, ProcessFormMixin): 
    def get(self, request, *args, **kwargs): 
     try: 
      self.object = MyModel.objects.latest("id") 
     except MyModel.DoesNotExist: 
      self.object = None 
     return super(MyView, self).get(request, *args, **kwargs) 

    def post(self, request, *args, **kwargs): 
     try: 
      self.object = MyModel.objects.latest("id") 
     except MyModel.DoesNotExist: 
      self.object = None 
     return super(MyView, self).post(request, *args, **kwargs) 
Смежные вопросы