无法通过HTML表单上载Django中的文件,并且在过帐时无法在表单中设置值

2024-05-23 15:52:07 发布

您现在位置:Python中文网/ 问答频道 /正文

视图.py无法通过用户的电子邮件id在数据库中设置From的值,从该HTML表单上载文件不起作用,但在管理面板中它正常工作

def compose_msg(request):
    if request.method == 'POST':
        form = MessageForm(request.POST, request.FILES)
        if form.is_valid():
            form.From = request.user.email //Cant Set the value by this in Databse//
            instance = Message(File= request.FILES["File"])
            instance.save()
        return HttpResponseRedirect('/Portal/compose/')
    else:
        form = MessageForm()
    context = {
        "form":form,
    }
    return render(request,"form.html",context)

表单.py

^{pr2}$

模型.py:程序中使用的模型

class Message(models.Model):
    subject = models.CharField(max_length=120)
    To = models.EmailField(max_length=254)
    From = models.EmailField(max_length=254)
    message = models.TextField(blank=True,
                               null=True)
    timestamp = models.DateTimeField(auto_now=False, auto_now_add=True)
    File = models.FileField(blank=True, null=True)

    def __unicode__(self):
        return self.subject

<!DOCTYPE html>
    <head>
        <link rel="stylesheet" href='/static/css/default.css' />
        <link rel="stylesheet" href='/static/css/bootstrap.min.css' />
        <script src='/static/js/jquery.min.js'></script>
        <script src='/static/js/bootstrap.min.js'></script>
        <title>



        </title>
        </head>
    <body>
        <div class="container">

        <nav class="navbar container-fluid">
        <ul class="nav nav-pills nav-justified">
            <li><a href="/Portal/inbox/">Inbox</a></li>
            <li><a href="/Portal/compose/">Compose</a></li>
            <li><a href="/Portal/outbox/">Sent</a></li>
            <a class="Logout btn btn-primary btn" href="/Portal/logout/" role="button">Logout</a>
        </ul>
    </nav>

    <form role="form" class="form-horizontal" method="post">
        <input type='hidden' name='csrfmiddlewaretoken' value='53Dtir4AphDETyjVnvMhma9T4kav9cbC' />
        <div class="form-group"><label class="control-label" for="id_subject">Subject</label><input class="form-control" id="id_subject" maxlength="120" name="subject" placeholder="Subject" required="required" title="" type="text" /></div>
<div class="form-group"><label class="control-label" for="id_To">To</label><input class="form-control" id="id_To" maxlength="254" name="To" placeholder="To" required="required" title="" type="email" /></div>
<div class="form-group"><label class="control-label" for="id_message">Message</label><textarea class="form-control" cols="40" id="id_message" name="message" placeholder="Message" rows="10" title="">
</textarea></div>
<div class="form-group"><label class="control-label" for="id_File">File</label><div class="row bootstrap3-multi-input"><div class="col-xs-12"><input class="" id="id_File" name="File" title="" type="file" /></div></div></div>
        <div class="form-group"><button class="btn btn-primary" type="submit">Submit</button></div>
    </form>

        </div>
    </body>
</html>

Tags: todivformidtitlemodelsrequestli