Django框架:使用CreateView的ListView

时间:2013-02-18 21:28:07

标签: django django-models django-forms django-templates

我是django编程的新手,我有一个简单的问题。

我有模特

class Dhcp(models.Model):

    class Meta:
        ordering = ('gateway',)
        verbose_name = _(u'DHCP Configuration')
        verbose_name_plural = _(u'DHCP Configurations')

    gateway = models.IPAddressField(_(u'Gateway'), null=True)
    dns_primary = models.IPAddressField(_(u'DNS Primary'), null=True)
    dns_second = models.IPAddressField(_(u'DNS Second'), blank=True)
    leases_time = models.IntegerField()
    nat = models.IPAddressField(_(u'NAT'), blank=True)
    max_time = models.IntegerField()

    def __unicode__(self):
        return self.gateway

我的问题是:

我想列出数据库中的所有dhcp对象,并添加更多对象。但我想在同一个模板上做到这一点。

例如:如果我在数据库中有3个对象,则显示并显示表单以添加更多对象。当我从表单中添加一个对象时,我想显示添加的对象。

谢谢!

Dusan Ristic

1 个答案:

答案 0 :(得分:0)

查看Class Based Views,更具体地说是ListViewCreateView。这个问题经常出现,所以你应该在这里找到答案。 Check this post out

您正在寻找的是这样的:

class DHCPView(forms.CreateView):
    model = Dhcp
    template_name = "list_and_create_dhcp.html"

    def get_context_data(self, **kwargs):
        kwargs["object_list"] = Dhcp.objects.all()
        return super(DHCPView, self).get_context_data(**kwargs)