2016-04-25 63 views
0

我是Django的新手,并且卡住了。下面我有一个模型样品 -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

你不应该那样做。使用ModelMultipleChoiceField和queryset参数。

+0

谢谢!使用queryset来获取我需要的数据! – rohitkulky

+0

我收到“XXXX不是主键的有效值”错误,表单中的下拉列表有任何想法,为什么? – rohitkulky