我是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没有再次转到此代码路径,因为它从数据库加载下拉列表的新值。
感谢帮助。
答案 0 :(得分:1)
你不应该这样做。将ModelMultipleChoiceField
与queryset参数一起使用。