Python 创建成员ID的下拉菜单

Python 创建成员ID的下拉菜单,python,django,django-forms,django-views,Python,Django,Django Forms,Django Views,我有一个模型成员,其中包含一个名为Member\u id的规范 class Member(models.Model): member_id = models.SlugField(max_length=10) name = models.CharField(max_length=200) gender = models.CharField(max_length=1, choices=GENDER_CHOICES) mobile = models.SlugField(

我有一个模型成员,其中包含一个名为Member\u id的规范

class Member(models.Model):
    member_id = models.SlugField(max_length=10)
    name = models.CharField(max_length=200)
    gender = models.CharField(max_length=1, choices=GENDER_CHOICES)
    mobile = models.SlugField(max_length=20)
    def __str__(self):
         return self.name 
我想创建一个存储成员ID的下拉菜单,供用户在
select_member.html
中选择

现在,我在forms.py中有这样的内容:(很确定它是错的)

以下观点:

class SelectView(generic.ListView):
  template_name = 'expcore/select_member.html'
  model = Activity

  def select_member(request):
    form = SelectForm()
    if request.method == 'POST':
      form = SelectForm(request.POST)
      if form.is_valid():
        return HttpResponseRedirect('/questions/')
    else:
      form = SelectForm()
    return render(request, 'select_member.html', {'form': form})
网址:

url(r'^activity/(?P<activityname>[^/]+)/member/$', views.SelectView.as_view(), name='select_member'),
url(r'^activity/(?P[^/]+)/member/$,views.SelectView.as_view(),name='select_member'),
我的select_member.html中没有任何内容,因为我不确定该放什么

有人能帮我完成表单、视图和HTML吗?我希望能够调用所有成员id,但member.member\u id.objects.all()不起作用


另外,如果有人能告诉我如何正确调用所有存储的成员id,而不是不正确的member.member\u id.objects.all(),那就太好了。

member.objects.values('member\u id')提供了一个字典列表,其中的值结构为{'member\u id':value}

如果您只需要id,您可以创建Member.objects.values\u list('Member\u id',flat=True),它只会为您提供成员id列表

无论如何,您尝试使用ModelChoiceField,它需要一个模型实例查询集,并尝试向它传递一个slug列表

你想做的是 modelcoocefield(queryset=Member.objects.all(),to_field\u name='Member\u id') 通常,
modelcoocefields
将id作为选项获取,但您可以使用
覆盖它,以_field_name


你不需要把
{{{form}}
放进去吗?我认为一个
modelcoocefield
还是做了一个select元素(就编辑它的
Member.objects.values('Member_id')
而言,如果我理解正确,你的意思是我只需要在html中放入{{form}}吗?当我将它改为
memberid=forms.modelcoocefield时,在我的forms.py中的classSelectForm(forms.form)下(queryset=Member.objects.all(),to_field_name='Member\u id')
我得到一个属性错误,说“type object'Member'没有属性'Member\u id'”。但是,当我尝试
memberid=forms.ModelChoiceField(queryset=Member.objects.values\u list('Member\u id',flat=True))
时,我没有得到一个错误(因此我认为它有效).你认为你能帮我解决HTML问题吗?视图对吗?你用的是哪种Django?
url(r'^activity/(?P<activityname>[^/]+)/member/$', views.SelectView.as_view(), name='select_member'),