如何使用模型字段值创建多重选择复选框?

问题描述 投票:0回答:2

我正在尝试从模型字段值创建多个选择复选框,并将选择传递给视图。

是否有适当的方法来执行此操作?

django django-models django-forms django-views django-templates
2个回答
0
投票

models.py

from django.db import models


class Tag(models.Model):
    name = models.CharField('タグ名', max_length=255)

    def __str__(self):
        return self.name

class Post(models.Model):
    title = models.CharField(max_length=255)
    tag = models.ManyToManyField(Tag)

    def __str__(self):
        return self.title

forms.py

from django import forms
from .models import Post, Tag

class MyModelChoiceField(forms.ModelChoiceField):
    def to_python(self, value):
        if value in self.empty_values:
            return None

        return Tab.objects.filter(name__in=value) 


class TestForm(forms.Form):
    check = forms.MyModelChoiceField(queryset=Tag.objects.all().values_list('name', flat=True), widget=forms.CheckboxSelectMultiple, empty_label=None)

0
投票
classs FormName(forms.Form):

    field_name = forms.ModelMultipleChoiceField(queryset=ModelClassName.objects.all(),
                                           to_field_name='model_class_field_name', 
                   widget=forms.CheckboxSelectMultiple())
© www.soinside.com 2019 - 2024. All rights reserved.