好的,所以我已经被困了几个星期,现在正在为这个标签系统工作。
我创建了一个django网站,让客户可以为我们翻译标签。我正在创建一个表单,客户在表单中选择他们希望创建相应翻译的商品代码。这意味着表单可以从模型中获取选择数据。选择商品代码后,我希望能够获取所选商品代码并将用户反转为与该商品代码匹配的网址。
目前我正在使用/usr/share/zoneinfo/Custom
从模型中获取数据。这有效,我可以在HTML表单中显示数据。但是我无法使用ModelMultipleChoiceField
获取数据,因为它只返回整个查询集请求。
这意味着我收到了错误
cleaned_data
请参阅以下代码。
forms.py
NoReverseMatch at /labelcreator/
Reverse for 'create_label' with keyword arguments '{'pk': <QuerySet [<Label: 13272432 Collar>]>}' not found. 1 pattern(s) tried:
['labelcreator\\/(?P<pk>[0-9]+)\\/create_label\\/$']
models.py
class LabelListForm(forms.Form):
item = forms.ModelMultipleChoiceField(queryset=Label.objects.all(), label="")
views.py
class Label(models.Model):
item_code = models.IntegerField(unique=True, primary_key=True)
item_description = models.CharField(max_length=50)
label_image = models.ImageField(blank=True, null=True)
label_completed = models.BooleanField(default=False)
created_date = models.DateTimeField(default=timezone.now)
submitted_date = models.DateTimeField(blank=True, null=True)
class Meta:
verbose_name = "label"
verbose_name_plural = "labels"
def submit(self):
self.submitted_date = timezone.now()
def get_absolute_url(self):
return reverse('create_label', kwargs={'pk'. self.pk})
def __str__(self):
return "{0} {1}".format(self.item_code, self.item_description)
模板
class LabelListView(LoginRequiredMixin, View):
form_class = LabelListForm
template_name = 'labelcreator/overview_create.html'
def get(self, request, *args, **kwargs):
form = self.form_class()
return render(request, self.template_name, {'form': form})
def post(self, request, *args, **kwargs):
form = self.form_class(request.POST)
if form.is_valid():
item = form.cleaned_data['item']
return reverse('labelcreator:create_label', kwargs={'pk': item})
return render(request, self.template_name, {'form': form})
非常感谢任何帮助
答案 0 :(得分:0)
我不明白为什么你在这里使用multichoice字段。您想要选择单个标签,然后重定向到其create_label页面;你应该使用ModelChoiceField。