2009-09-23 155 views
0

我开始使用官方文档教程学习django,并创建此注册表单。 我有整个应用程序设置,但我坚持如何处理数据。我的意思是文档有点难以理解。如果我能得到一些帮助,那会很好。django注册模块

这是该机型是如何设置的:

class user (models.Model): 
    username = models.CharField(max_length=20) 
    name = models.CharField(max_length=25) 
    collegename = models.CharField(max_length=50) 
    event = models.CharField(max_length=30) 
    col_roll = models.CharField(max_length=15) 

    def __unicode__(self): 
     return self.username 

,这是index.html的形式:

<form action="" method="post"></form> 
    <input name="username" type="text" maxlength="40" /> 
    <input name="name" type="text" maxlength="40" /> 
    <input name="collegename" type="text" maxlength="40" /> 
    <input name="event" type="text" maxlength="40" /> 
    <input name="col_roll" type="text" maxlength="40" /> 
    <input type="submit" value="Register" /> 
</form> 

我不明白如何创建过程中这个注册的视图一位新用户。 如果有人能帮助我,那会很棒。数据库(MySQL)使用名称(register_user)创建。我不明白如何将上述表单中的值存入数据库。 如果它是普通的python,它会很容易完成,但是DJANGO我不明白。

非常感谢。

回答

1

您好像没有阅读过documentation on forms。它详细解释了如何从模型创建表单,如何将其输出到模板中(因此您不需要手动编写HTML输入元素)以及如何在视图中处理它。

0

我开始时花了一些时间来弄清表格处理位。首先你需要在形式部分之前需要创建一个view function。该视图将使用您的index.html文件作为模板。在该视图中,您需要创建一个表单(可以从Daniel的链接上面或creating a form from your model)。获取表单类后,在视图中提供一个实例化的副本(例如,form = MyRegistrationModelForm()),然后将index.html中的所有输入标记替换为{{form}}。这将输出一个预格式化的表单,这可能不是您想要的,但您可以查看源代码并查看需要命名的表单字段,然后您可以从中进行自定义。

另一件事。不知道如果你是,但你应该使用django-registration为此。与其创建自己的用户类,不如使用django.contrib.auth.models中的内置User类,然后使用django注册您所需的自定义字段。如果使用已定义的用户类,则可以更轻松地插入其他模块。

至于数据库,假设您已经将正确的MySQL连接信息放入settings.py,在项目的根目录下运行'python manage.py syncdb'应该创建所有必要的表。确保在添加新模型时重新运行它。