在django中定义一个create函数

时间:2012-10-12 13:05:58

标签: django

我正在尝试创建一个“管理”页面,用户可以在其中创建“匹配”,为其命名,并显示我创建的匹配列表到其他页面。我还希望有一个“删除”按钮来删除匹配。

我有这个型号:

class Match(models.Model):
    teams = models.ManyToManyField(Teams)
    identite = models.CharField(max_length=60)
    teamA = models.CharField(max_length=20)
    teamB = models.CharField(max_length=20)
    info = models.CharField(max_length=500)
    sport = models.CharField(max_length=20)
    date_start = models.DateTimeField()
    date_end = models.DateTimeField()

    def __unicode__(self):
        return self.identite

我在模型中创建了这个函数:

def create_match(self,name):
    return self.create('name')

然后,我尝试在管理页面的html中创建一个表单:

 <form method="post" action=".">
 {% csrf_token %}
 <p><label for="Team A">Team A:</label> <input id="Team A" type="text" class="required"   name="Team A" maxlength="30"></p>
 <p><label for="Team B">Team B:</label> <input id="Team B" type="text" class="required" name="Team B" maxlength="30"></p>
  (...)
 <input type="submit" value="" />
 </form>

所以我的问题是:

如何调用我的函数“create_match”,以便当我单击“提交”按钮时,它会在我的数据库中创建一个与我填写的数据匹配的匹配项? 如何将此匹配添加到列表中,以便我可以将此列表显示到其他页面? 最后,如何从该列表中删除匹配而不将其从DB中删除?

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:0)

Django提供了基于模型生成表单的内置功能,这些模型称为Model Forms

另外,通常“创建”新模型只是实例化您的模型类并分配正确的值并保存它。

此外,django还提供了一个内置的管理页面,允许您注册模型并允许用户在数据库中创建/删除/修改记录。将模型添加到django管理员并获得此功能是微不足道的。