2013-02-18 79 views
-1

我是新的Django编程,我有一个简单的问题。Django框架:ListView与CreateView

我有模型

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个对象,则显示并显示表单以添加更多obj。当我从表单添加一个对象时,我想显示添加的对象。

谢谢!

杜尚·里斯蒂奇

回答

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) 
+0

好TNX。这对我有用! – 2013-02-19 12:54:24

+0

不用担心。 :-) – Matt 2013-02-19 13:36:52