我有一个用于编辑(更新)记录的表单,/src/main/resources/keystore
字段自动是一个下拉列表,这很好,但是如何过滤此列表?
例如,下拉列表中将填充整个用户列表。如何过滤此列表,使其仅显示target/classes
处的项目?
帐户/模型.py
Author
builds / models.py
isDevice == True
forms.py
from django.contrib.auth.models import AbstractUser
class CustomUser(AbstractUser):
isDevice = models.BooleanField(default = False)
...
views.py
class BuildQueue(models.Model):
Author = models.ForeignKey(CustomUser,blank=True, null= True, on_delete=models.CASCADE)
...
答案 0 :(得分:2)
由于UpdateView
也继承自FormMixin
,因此在您的buildQueueEdit
中,您可以覆盖get_form,在该位置实例化表单,并且可以精确地在其中修改表单字段的{{1 }}。
queryset
更新
如果要更改下拉菜单中显示的文本,可以覆盖class buildQueueEdit(LoginRequiredMixin,UpdateView):
model = BuildQueue
form_class = BuildQueueEditForm
template_name = 'buildQueue_edit.html'
def get_form(self, form_class=None):
form = super().get_form(form_class)
form.fields['Author'].queryset = CustomUser.objects.filter(isDevice=True)
return form
而不是choises
。它对我有用。
queryset