django表格版本1.3

时间:2011-08-02 13:44:51

标签: django django-1.3

我希望用户在特定页面中提交表单。我的模型是这样的

class Ask(models.Model):
    name = models.CharField(max_length=500)
    designation = models.CharField(max_length=200, blank=True)
    email = models.EmailField()
    phone = models.CharField(max_length=20,  blank=True)
    avatar = models.ImageField(upload_to="/ask/users/avaters", blank=True)
    question = models.CharField(max_length= 1024)
    ques_time = models.DateField()
    answere = models.TextField()
    ans_time = models.DateField()
    display = models.BooleanField()
    asker_ip = models.CharField(max_length=100)

从用户我将收到姓名,名称,电子邮件,电话,avater和问题。 ques_time和ans_time将在那段时间自动更新。答案将由django admin中的网站所有者填写。将自动从浏览器IP地址收到asker_ip。

我在模板部分有一个基本模板。当表单提交的用户将重定向到该页面,但在表单部分中有成功消息。顺便说一下,我希望用户上传该avater图像。

现在我应该如何开始这个主题。如果您可以描述如何开始写作或向我发送一个有用的网址。

1 个答案:

答案 0 :(得分:2)

你可以这样做:

  • 创建一个验证表单like this的视图:如果有POST(因此,用户提交了表单),他会创建一个包含所有提交值的表单对象,然后您可以进行操作。如果没有POST请求,它只是为模板创建一个空表单。两种方式,视图都将表单返回给模板。如果表单已提交或表示空,则可能使用另一个设置为True / False的变量。
  • 在模板中,您可以使用模板标签检查表单是否存在(使用变量),如下所示:

    {%if form_sent%}     

    Bravo!你提交了一些东西

    {%else%}     {{form.as_p}} {%endif%}

像这样的事情。这应该涵盖你问题的第一部分。 This是您要查找文件的内容。仔细阅读本页,如果你错过了什么,上传将不会进行(即,我永远不会记得在表单中包含正确的mimetype,而且我总是会收到错误)