У меня есть модели Post и UploadFile:
class Post(models.Model):
title = models.CharField(max_length=150)
content = models.TextField()
author = models.ForeignKey(settings.AUTH_USER_MODEL, default=1, on_delete=models.CASCADE,
related_name="post_author")
objects = PostManager()
Ссылка объекта UploadFile на Post через ForeignKey
class UploadFile(models.Model):
file = models.FileField(null=True, blank=True, upload_to='files/', )
post = models.ForeignKey(Post, on_delete=models.CASCADE, null=True, related_name="file_post")
Я создаю сообщение в редакторе на странице администратора. Для этого я использую RichTexteditor Tinymce. Дело в том, что когда я создаю сообщение в редакторе, объект UploadFile (файл) немедленно загружается на сервер через Ajax-запрос и хочет сослаться на объект post. Но объект post не был создан, так как я редактирую его. Как решить эту проблему? Пока ForeignKey не назначен (null = True). Может ли это быть переписать метод сохранения или использовать сигналы post_save, или обновить значение ForeignKey для Uploadfile.post после создания объекта Post? Но я пока не знаю, как это реализовать. Это функция загрузки файла в views.py.
@require_POST
def file_upload(request):
reqfile = UploadFile.objects.create(file=request.FILES['file'])
return JsonResponse({'fileurl': reqfile.file.url})