Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.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_Django Forms_Django File Upload - Fatal编程技术网

Python 文件未在Django中上载

Python 文件未在Django中上载,python,django,django-forms,django-file-upload,Python,Django,Django Forms,Django File Upload,我正在尝试将Django中的文件上载到模型: class Dealer(models.Model): user = models.OneToOneField(User,on_delete=models.PROTECT) profile = models.OneToOneField(UserProfile,on_delete=models.PROTECT) kyc_verified = models.BooleanField('kyc status',default=Fal

我正在尝试将Django中的文件上载到模型:

class Dealer(models.Model):
    user = models.OneToOneField(User,on_delete=models.PROTECT)
    profile = models.OneToOneField(UserProfile,on_delete=models.PROTECT)
    kyc_verified = models.BooleanField('kyc status',default=False)
    aadhar = models.FileField(upload_to='aadhar_images')
    pan = models.FileField(upload_to='pan_images')
    gts = models.FileField(upload_to='gts')
    registration = models.FileField(upload_to='registration')
    manager = models.CharField(max_length=75)
    manage_mobile = models.IntegerField()
在媒体中,我创建了文件夹
aadhar_images
pan_images
gts
registration
。但当我使用html格式上传文件时:

<form method="post" action="{% url 'dealer:update' %}" enctype="multipart/form-data">
{% csrf_token %}
<br><br>
AAdhar upload :
<input type="file" name="aadhar" id="aadhar" accept="*"><br><br>
Pan upload :
<input type="file" name="pan" id="pan" accept="*"><br><br>
Gts upload :
<input type="file" name="gts" id="gts" accept="*"><br><br>
Registration upload :
<input type="file" name="registration" id="regis" accept="*"><br><br>
</form>
在我提交表单后,这些文件不会上载到各自的目录。数据库中的url也显示为
media/filename
,但即使在媒体目录中也不会上载文件。

使用
.update()
方法不会将任何文件保存到存储器中。您需要使用models
save
方法。也不要使用try,除非以这样的方式使用一个简单的
,如果
就足够了,或者您可以简单地使用
.get()
。由于您的车型经销商与用户之间存在一对一的关系,您只需以
user.Dealer
的身份获取经销商即可。试试这个:

if request.method == 'POST':
    user = request.user # Why so much work to get what you already have even if you want id request.user.id would be enough...
    dealer = user.dealer
    if dealer:
        aadhar = request.FILES.get('aadhar')
        pan = request.FILES.get('pan')
        gts = request.FILES.get('gts')
        reg = request.FILES.get('registration')
        dealer.aadhar = aadhar
        dealer.pan = pan
        dealer.gts = gts
        dealer.reg = reg
        dealer.kyc_verified = False
        dealer.save()

请注意,使用a会更好、更容易。

谢谢您的回答。成功了。关于try-except代码,我在前面的问题中询问了如何在这里修改代码-
if request.method == 'POST':
    user = request.user # Why so much work to get what you already have even if you want id request.user.id would be enough...
    dealer = user.dealer
    if dealer:
        aadhar = request.FILES.get('aadhar')
        pan = request.FILES.get('pan')
        gts = request.FILES.get('gts')
        reg = request.FILES.get('registration')
        dealer.aadhar = aadhar
        dealer.pan = pan
        dealer.gts = gts
        dealer.reg = reg
        dealer.kyc_verified = False
        dealer.save()