Django Model多选表单渲染异常:无法实现Admin式可点击选择列表
问题:分类列表无法点击选择,需实现Django Admin同款可点击多选效果
我想展示所有分类,做成和Django Admin面板一致的可点击选择列表,但目前渲染出的列表无法点击选择。相关代码如下:
forms.py
class ProfileEditForm(forms.ModelForm): """ Form for updating Profile data """ class Meta: model = Profile fields = [ "first_name", "last_name", "about_me", "profile_image", "username", "email", "categories", ] first_name = forms.CharField(label="First Name", max_length=63, required=False) last_name = forms.CharField(label="Last Name", max_length=63, required=False) about_me = forms.CharField(label="About Me", max_length=511, required=False) email = forms.EmailField(label="Email", disabled=True) username = forms.CharField(label="Username", disabled=True) profile_image = forms.ImageField(required=False) categories = forms.ModelMultipleChoiceField( queryset=Category.objects.all(), required=False, widget=forms.CheckboxSelectMultiple(), )
profile.models.py
class Profile(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE, related_name="profile") first_name = models.CharField(max_length=63, blank=False) last_name = models.CharField(max_length=63, blank=False) about_me = models.CharField(max_length=511, blank=True) categories = models.ManyToManyField( Category, related_name="user_categories", symmetrical=False )
categories.models.py
from django.db import models class Category(models.Model): name = models.CharField(max_length=63) created = models.DateTimeField(auto_now_add=True, blank=True, null=True) last_modified = models.DateTimeField(auto_now=True, blank=True, null=True) def __str__(self): return self.name def __unicode__(self): return self.name class Meta: verbose_name_plural = "Categories"
settings.html
<div class='row'> <div class="col s12 m6"> {{form.categories.errors}} {{form.categories.label_tag}} {{form.categories}} </div> </div>
预期效果
呈现类似Django Admin的可点击多选列表,每个分类选项前配有复选框,点击即可完成勾选或取消选择操作。
实际效果
渲染出的分类列表无法点击,复选框及选择区域无响应,无法完成选择操作。
内容的提问来源于stack exchange,提问作者osahenru
相关产品推荐
相关产品推荐

