Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将上载的文件连接到Django中的帖子_Python_Django_Foreign Keys - Fatal编程技术网

Python 将上载的文件连接到Django中的帖子

Python 将上载的文件连接到Django中的帖子,python,django,foreign-keys,Python,Django,Foreign Keys,我正在尝试将上传的文档与Django中的相关帖子连接起来。这个想法是,当用户创建一个帖子(我在代码中称之为seed)时,如果他愿意,他可以上传一个文档。我尝试使用joint方法来实现这一点,但它不起作用(要么告诉我它需要一个“str”而不是一个“int”,要么告诉我ForeignKey条件不起作用)。有没有办法连接这两个类,并成功上传一个文件?谢谢你的帮助 以下是我尝试过的: views.py “”“ “”“ models.py “”“ “”“ forms.py “”“ “您需要将seed\u相

我正在尝试将上传的文档与Django中的相关帖子连接起来。这个想法是,当用户创建一个帖子(我在代码中称之为seed)时,如果他愿意,他可以上传一个文档。我尝试使用joint方法来实现这一点,但它不起作用(要么告诉我它需要一个“str”而不是一个“int”,要么告诉我ForeignKey条件不起作用)。有没有办法连接这两个类,并成功上传一个文件?谢谢你的帮助

以下是我尝试过的:

views.py

“”“

“”“

models.py

“”“

“”“

forms.py

“”“


您需要将
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}
    )