我有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对象通过ForeignKey链接到Post
class UploadFile(models.Model):
file = models.FileField(null=True,blank=True,upload_to='files/',)
post = models.ForeignKey(Post,null=True,related_name="file_post")
我正在管理页面上的编辑器中创建帖子。为此,我使用RichTexteditor Tinymce。事实是,当我在编辑器中创建帖子时,UploadFile对象(文件)会立即通过Ajax请求上传到服务器,并希望引用该帖子对象。但是自从我编辑后,尚未创建post对象。 如何解决这个问题呢?未分配ForeignKey时(null = True)。创建Post对象之后,可能是重写save方法或使用post_save信号,还是更新Uploadfile.post的ForeignKey值?但是我还不知道如何实现。 这是views.py中的文件上传处理程序功能。
@require_POST
def file_upload(request):
reqfile = UploadFile.objects.create(file=request.FILES['file'])
return JsonResponse({'fileurl': reqfile.file.url})