Python 将上载的文件连接到Django中的帖子
我正在尝试将上传的文档与Django中的相关帖子连接起来。这个想法是,当用户创建一个帖子(我在代码中称之为seed)时,如果他愿意,他可以上传一个文档。我尝试使用joint方法来实现这一点,但它不起作用(要么告诉我它需要一个“str”而不是一个“int”,要么告诉我ForeignKey条件不起作用)。有没有办法连接这两个类,并成功上传一个文件?谢谢你的帮助 以下是我尝试过的: views.py “”“ “”“ models.py “”“ “”“ forms.py “”“Python 将上载的文件连接到Django中的帖子,python,django,foreign-keys,Python,Django,Foreign Keys,我正在尝试将上传的文档与Django中的相关帖子连接起来。这个想法是,当用户创建一个帖子(我在代码中称之为seed)时,如果他愿意,他可以上传一个文档。我尝试使用joint方法来实现这一点,但它不起作用(要么告诉我它需要一个“str”而不是一个“int”,要么告诉我ForeignKey条件不起作用)。有没有办法连接这两个类,并成功上传一个文件?谢谢你的帮助 以下是我尝试过的: views.py “”“ “”“ models.py “”“ “”“ forms.py “”“ “您需要将seed\u相
“您需要将
seed\u相关的链接到您通过表单构造的seed
:
def seed_create(request):
if request.method == 'POST':
seed_form = SeedForm(request.POST, request.FILES)
docu_form = DocumentForm(request.POST, request.FILES)
if seed_form.is_valid() and docu_form.is_valid():
seed_form.instance.user = request.user
seed = seed_form.save()
docu_form.instance.seed_related = seed
docu_form.save()
messages.success(request, 'Your seed was successfully created!')
return redirect('seed:view_seed')
else:
messages.error(request, 'Please correct the error below.')
else:
seed_form = SeedForm()
docu_form = DocumentForm()
return render(
request,
'seed/create.html',
context={'seed_form': seed_form, 'docu_form': docu_form}
)
def seed_创建(请求):
如果request.method==“POST”:
种子形式=种子形式(request.POST、request.FILES)
docu_form=DocumentForm(request.POST、request.FILES)
如果seed_form.is_valid()和docu_form.is_valid():
seed_form.instance.user=request.user
seed=seed\u form.save()
docu\u form.instance.seed\u related=种子
docu_form.save()
messages.success(请求“您的种子已成功创建!”)
返回重定向('seed:view\u seed')
其他:
messages.error(请求“请更正以下错误”。)
其他:
种子形式=种子形式()
docu_form=DocumentForm()
返回渲染(
要求
“seed/create.html”,
上下文={'seed_form':seed_form,'docu_form':docu_form}
)
def gallery_folder(instance, file):
return '/'.join(['documents', instance.seed_related_id, file])
class Document(models.Model):
seed_related = models.ForeignKey(Seed,on_delete=models.CASCADE,default=1)
description = models.CharField(max_length=255, blank=True)
file = models.FileField(default="No file",upload_to=gallery_folder)
uploaded_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.title
class DocumentForm(forms.ModelForm):
class Meta:
model = Document
fields = ('description', 'file')
def seed_create(request):
if request.method == 'POST':
seed_form = SeedForm(request.POST, request.FILES)
docu_form = DocumentForm(request.POST, request.FILES)
if seed_form.is_valid() and docu_form.is_valid():
seed_form.instance.user = request.user
seed = seed_form.save()
docu_form.instance.seed_related = seed
docu_form.save()
messages.success(request, 'Your seed was successfully created!')
return redirect('seed:view_seed')
else:
messages.error(request, 'Please correct the error below.')
else:
seed_form = SeedForm()
docu_form = DocumentForm()
return render(
request,
'seed/create.html',
context={'seed_form': seed_form, 'docu_form': docu_form}
)