Django-更新通用CBV发送的数据? (刷新视图的变量)

时间:2015-09-25 22:42:02

标签: python django django-views

我正在尝试执行以下操作:

class PurchaseCreate(CreateView):
    template_name = "generic_create.html"
    model = Purchase
    form_class = PurchaseForm
    try:
        latest_tag = Purchase.objects.latest('tag').tag
        print(latest_tag)
        next_tag = latest_tag + 1
    except:
        next_tag = 1
    initial = {'tag': next_tag}

"标签"字段应以与输入的先前值的+ 1相关的值开始。当我在Django API中测试它时,它工作正常。然而,当从视图中调用时,它第一次正常工作,但似乎被卡住了#34;返回第一个值,即使创建了应该更新值的新对象。

实际上,在第一页加载后,try / except部分永远不会执行,因为即使刷新硬盘,打印顺序也不会显示在终端中。如何设置此视图以在每次加载页面时发送更新的结果?

1 个答案:

答案 0 :(得分:0)

正如所建议的那样,我将逻辑移动到get_initial()方法中,如下所示:

def get_initial(self):
    super(PurchaseCreate, self).get_initial()
    try:
        latest_tag = Purchase.objects.latest('tag').tag
        print(latest_tag)
        next_tag = latest_tag + 1
    except:
        next_tag = 1
    initial = {'tag': next_tag}
    return initial