我可以在更新视图中渲染没有数据的内联formset吗?

时间:2016-03-18 18:28:07

标签: python django django-templates inline-formset

我有这个型号:

class Picture(models.Model):
    image = models.ImageField(upload_to='media')
    show_name = models.CharField(max_length=128)
    file_name = models.CharField(max_length=128)

class PicturePrice(models.Model):
    picture = models.ForeignKey(Picture)
    price = models.PositiveSmallIntegerField()
    date = models.DateTimeField(auto_now_add=True)

使用这些模型,我每次都想知道图片有新价格,以及每个价格的添加日期。像这样:

Pictures: 1, 2, 3

Picture 1:
Price 5$ 3/16/2016
Price 3$ 3/18/2016

Picture 2:
Price 3$ 3/16/2016

Picture 3:
Price 5$ 3/16/2016
Price 3$ 3/17/2016
Price 4$ 3/18/2016

像这样,我知道什么是更新的价格以及最后的价格。

我有这个内联formset价格:

price_formset=inlineformset_factory(
    Picture,
    PicturePrice,
    extra=0,
    min_num=1,
    can_delete=True,
    widgets={
    'price' : forms.TextInput(attrs={
        'class':'form-control price_per_pic',
        'maxlength' : 5
    })}
)

当我在视图中调用它时,这很有效,但是当我尝试添加新价格时,它会显示一个具有先前价格的文本框,以进行编辑。我不想编辑价格,我只想在数据库中添加一个新的注册表。

任何帮助都将不胜感激。

由于

1 个答案:

答案 0 :(得分:0)

尝试将extra中的price-formset值更改为大于0(您想要的空表单数)。所以,如果你想要一个空表格:

price_formset_inlineformset_factory(
    ...
    extra=1,
    ...
)