如何在python中有效设置类别模型

时间:2019-05-16 11:39:13

标签: python django django-models django-rest-framework

我正在Django中建立模型。我创建了一个名为category的字段,作为一个外部字段(因为它将包含很多将通过模型添加的类别)。

我希望能够为用户或管理员创建的每个配置文件添加多个类别,但是我只能为创建的每个配置文件添加一个类别。

请问如何解决此问题,我不知道该如何解决。

到目前为止,下面的代码显示了到目前为止我可以做的事情,以及给管理员的图片:

Image

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模型中为每个配置文件添加一个类别。

1 个答案:

答案 0 :(得分:3)

您只能将单个对象保存到ForeignKey字段。如果要将多个类别添加到单个配置文件,请使用“多对多”字段。

   general_category = models.ManyToManyField(Category, on_delete=models.CASCADE)