Джанго получает ForeignKey не созданного объекта - PullRequest
0 голосов
/ 05 ноября 2019

У меня есть модели 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})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...