Вот то, что у меня сейчас есть.
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
По сути, когда пользователь создает сообщение, он отправляется в асинхронную задачу, где я изменяю атрибут в модели. Модель обновлена должным образом, но я хочу, чтобы подробный вид изменился после обновления базы данных. Это возможно?