Django - 添加新数据后,数据库中的表单下拉列表未立即更新

时间:2016-04-25 13:38:59

标签: python django forms

我是Django的新手并且被卡住了。我有一个模型样本 -

class Machines(models.Model):
    machine_name = models.CharField(max_length=50,null=True, unique=True)

相关表格 -

class NewMachine(forms.Form):
    machine_name = forms.CharField(label="Machine Name",required=True)

现在我使用 -

在另一个表单的下拉列表中使用此模型值(机器名称)
all_machines = [i['machine_name'] for i in Machines.objects.values('machine_name').distinct()]
machine_choices = [(i,i) for i in get_uniq_obj(all_machines)]
machine_name = forms.MultipleChoiceField(required=False,
                     choices=machine_choices,label="")

get_uniq_obj只是一个可以进一步删除重复项的函数。 问题是我没有立即在表单下拉列表中看到新添加的计算机名称(来自Machines表),或者直到我重新启动服务器。

我试图将all_machines块放在不同的位置,但STDOUT没有再次转到此代码路径,因为它从数据库加载下拉列表的新值。

感谢帮助。

1 个答案:

答案 0 :(得分:1)

你不应该这样做。将ModelMultipleChoiceField与queryset参数一起使用。