-1

我想让用户在某个页面中提交表单。我的模型是这样的

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)

我将收到用户的姓名、职务、电子邮件、电话、头像和问题。ques_time 和 ans_time 将在那个时间自动更新。答案将由 django 管理员中的站点所有者填写。asker_ip 将自动从浏览器 IP 地址接收。

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

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

4

1 回答 1

2

你可以这样做:

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

    {% if form_sent %}

    太棒了!你提交了一些东西

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

像这样的东西。这应该涵盖您问题的第一部分。 就是您要查找的文件上传。仔细阅读此页面,如果您遗漏了什么,上传将无法进行(即,我从不记得在表单中包含正确的 mimetype,而且我总是会出错)

于 2011-08-02T14:05:22.077 回答