我正在Django中建立模型。我创建了一个名为category的字段,作为一个外部字段(因为它将包含很多将通过模型添加的类别)。
我希望能够为用户或管理员创建的每个配置文件添加多个类别,但是我只能为创建的每个配置文件添加一个类别。
请问如何解决此问题,我不知道该如何解决。
到目前为止,下面的代码显示了到目前为止我可以做的事情,以及给管理员的图片:
from django.conf import settings
from django.db import models
class Category(models.Model):
name = models.CharField(max_length=50, default=None)
slug = models.SlugField(max_length=50, unique=True, default=None)
class Meta:
ordering = ('name',)
verbose_name = 'category'
verbose_name_plural = 'categories'
def __str__(self):
return self.name
class Profile(models.Model):
bio = models.TextField(blank=False)
personal_website_url = models.URLField(blank=True)
personal_website_name = models.URLField(blank=True)
general_category = models.ForeignKey(Category, on_delete=models.CASCADE)
def __str__(self):
return self.bio or ""
如何为每个配置文件添加多个类别?因为我只能在Django模型中为每个配置文件添加一个类别。
答案 0 :(得分:3)
您只能将单个对象保存到ForeignKey
字段。如果要将多个类别添加到单个配置文件,请使用“多对多”字段。
general_category = models.ManyToManyField(Category, on_delete=models.CASCADE)