如何在单个Django模型字段中显示多个类别选项

时间:2019-05-14 13:48:39

标签: django-models django-2.2

我正在尝试建立Django模型,并且我希望有一个名为category的特定字段包含一个选项列表,这些选项将作为用户可以选择的选项列表呈现到前端。 / p>

我是Django和python的新手,我真的不知道如何解决此问题。

from django.conf import settings

from django.db import models



class Profile(models.Model):
    user                    = models.ForeignKey(user, on_delete=models.CASCADE)
    Bio                     = models.TextField(blank=False)
    personalWebsiteURL      = models.URLField(blank=True)
    personalWebsiteName     = models.URLField(blank=True)

    categories = **model needed here**


    def __str__(self):
        return self.details or ""

我希望类别的选项来自后端或模型,这是一长列类别。我希望将类别列表或选项保存为模型字段。

1 个答案:

答案 0 :(得分:1)

如果您想要很长的列表,并且要经常更改,那么最好创建类别模型,并为此使用ForeignKey。

class Category(models.Model):
    title = models.CharField(...)
    slug = models.SlugField(...)

class Profile(models.Model):
    ...
    category = models.ForeignKey(Category, on_delete=models.CASCADE)

如果类别列表是固定的(或不经常更新),则可以使用choices

class Profile(models.Model):
    ...
    CATEGORIES = (
        (1, 'Category one'),
        (2, 'Category two'),
        (3, 'Category three'),
        ...
    )
    category = models.IntegerField(choices=CATEGORIES)