首页 > 解决方案 > Django - 输入值列表 - ForeignKey

问题描述

对于 M2O 关系,我应该在表单中使用哪个字段?

模型.py

class Studio(models.Model):
    name = models.SlugField(max_length=100)
    rating = models.CharField(max_length=10, default=None)

    def __str__(self):
        return self.name

class AnimeDetail(models.Model):
    title_japanese = models.CharField(max_length=250)
    studio = models.ForeignKey(Studio, on_delete=models.CASCADE, default=None)
    ...

表格.py


from .models import AnimeDetail

class AnimeDetailForm(forms.ModelForm):

    class Meta:
        model = AnimeDetail
        fields = ['icon', 'image', 'title_japanese', 'title_english', 'studio', 'genre', 'total_episodes', 'posted_episodes', 'season', 'date_started', 'date_finished', 'status', 'type_anime', 'age', 'source']

        widgets = {
            'title_japanese': forms.TextInput(attrs={'class': 'form-control'}),
            'studio':forms.Select(attrs={'class': 'form-control'}),
            ...
        }

'studio':forms.Select(attrs={'class': 'form-control'})-> Select 在这种情况下不能正常工作,但在其他项目中工作没有问题。

错误在此处输入图像描述

怎么了?

标签: pythondjangodjango-modelsdjango-formsdjango-widget

解决方案


M2M 使用 SelectMultiple 代替 Select 小部件

代替

'studio':forms.SelectMultiple(attrs={'class': 'form-control'}),

推荐阅读