Есть ли способ динамического обновления подробного представления для Django после внесения изменений в модель вне views.py? - PullRequest
1 голос
/ 29 января 2020

Вот то, что у меня сейчас есть.

views.py

class MultipleModelView(generic.TemplateView):
    template_name = 'upload/home.html'

    # @login_required(redirect_field_name='notloggedin.html')

    def get_context_data(self, **kwargs):
        if self.request.user.is_authenticated:
             context = super(MultipleModelView, self).get_context_data(**kwargs)
             context['jobs'] = Job.objects.filter(author=self.request.user).order_by('-created_at')
             context['posts'] = devpost.objects.all().order_by('-created_at')
             context['subcounter'] = SubCounter()
             context['inprogcounter'] = InProgCounter()
             context['fincounter'] = FinCounter()
             return context
        else:
            context = super(MultipleModelView, self).get_context_data(**kwargs)
            # context['jobs'] = Job.objects.filter(author=self.request.user).order_by('-created_at')
            context['posts'] = devpost.objects.all().order_by('-created_at')
            return context

class PostCreateView(LoginRequiredMixin,generic.CreateView):
    model = Job
    fields = ['patient_name', 'location']

    def form_valid(self, form):
        form.instance.author = self.request.user
        id = randomStringDigits(5)
        form.instance.identifier = id
        sleepy.delay(id=id)
        return super().form_valid(form)

Причина, по которой это выглядит так, заключается в том, что у меня есть страница, на которой у меня есть несколько моделей.

Модель задания обновляется в этом файле после его создания.

tasks.py

@shared_task
def sleepy(id=None):
    MyModel = apps.get_model('upload','Job')
    working_with = MyModel.objects.get(identifier=id)
    working_with.status = "In Progress"
    sleep(30)
    working_with.status = "Finished"
    return None

По сути, когда пользователь создает сообщение, он отправляется в асинхронную задачу, где я изменяю атрибут в модели. Модель обновлена ​​должным образом, но я хочу, чтобы подробный вид изменился после обновления базы данных. Это возможно?

...