Как эффективно настроить модель категорий в Python - PullRequest
3 голосов
/ 16 мая 2019

Я настраиваю модель в Джанго. Есть поле с именем 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 Ответ

3 голосов
/ 16 мая 2019

Вы можете сохранить только один объект в поле ForeignKey. если вы хотите добавить несколько категорий в один профиль, используйте поле «многие ко многим».

   general_category = models.ManyToManyField(Category, on_delete=models.CASCADE)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...