gpt4 book ai didi

python - 创建成员(member) ID 的下拉菜单

转载 作者:行者123 更新时间:2023-12-01 04:18:58 24 4
gpt4 key购买 nike

我有一个模型成员,其中包含名为 member_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 SelectForm(forms.Form):
memberid = forms.ModelChoiceField(queryset=Member.member_id.objects.all())

以下 View :

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'),

我的 select_member.html 中没有任何内容,因为我不确定要放什么。

有人可以帮我解决表单、 View 和 HTML 问题吗?我希望能够调用所有成员 ID,但 Member.member_id.objects.all() 不起作用。

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

最佳答案

Member.objects.values('member_id') 为您提供具有结构为 {'member_id': value} 的值的字典列表。

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

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

你想做的是ModelChoiceField(queryset=Member.objects.all(), to_field_name='member_id')通常 ModelChoiceFields 获取 id 作为选项,但您可以使用 to_field_name 覆盖它:

https://github.com/django/django/blob/master/django/forms/models.py#L1129-L1144

关于python - 创建成员(member) ID 的下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33952821/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com