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

Python Django-更新从通用CBV发送的数据?(刷新视图的变量),python,django,django-views,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 =

我正在努力做到以下几点:

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。当我在DjangoAPI中测试它时,它工作得很好。但是,当从视图调用时,它第一次正常工作,但似乎会“卡住”返回第一个值,即使创建了新对象(该对象应更新该值)


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

根据建议,我将逻辑移到了
get\u 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

新的
采购
是否正确保存?如果没有,这可能是它没有正确更新的原因。另外,您可能应该定义
get_initial()
——这样会更干净。是的,对象保存正确,因为我可以在API中成功检索它们。事实上,如果我等待足够长的时间,最终它会刷新。我认为问题在于Django中的某种缓存行为。我试图使用
@never\u cache
,但它不适用于CBV。我将查看
get\u initial()
并查看是否可以在那里找到任何内容。覆盖get\u initial解决了问题!谢谢你说的TIPA,这是一个基于类的视图。您不应该在类的顶层执行逻辑;你是用一种方法来做的。你有什么理由不把
tag
an作为一个标记吗?因为在我第一次学习使用Django时,我愚蠢地将它设置为模型上的主键。现在改变它将是一件非常头痛的事。但是,是的,这将是最好的设置方法。