将多个标签添加到模型中

时间:2013-04-26 23:40:49

标签: python django django-taggit

我有以下型号:

class Investor(Profile):
ROLE = (
    ('AN', 'Angel Investor'),
    ('VC', 'Venture Capital'),
    ('SC', 'Seed Capital')
)
role = models.CharField(max_length=2, default='AN', choices=ROLE)
min_inv = models.DecimalField(
    default=0, max_digits=20, decimal_places=2,
    verbose_name='Minimum Investments per year')
max_inv = models.DecimalField(
    default=0, max_digits=20, decimal_places=2,
    verbose_name='Maximum investments per year')
no_startups = models.IntegerField(
    default=0, verbose_name='Number of investments per year')
rating_sum = models.FloatField(default=0)
no_raters = models.IntegerField(default=0)

我想为此模型添加多个标签。 - 类别 - 舞台 - 资金

我希望将投资者分配到多个类别,阶段和资金。 因此,投资者可以与多个类别挂钩 和多个阶段 和多种资助类型。

如何编辑模型?

1 个答案:

答案 0 :(得分:1)

您可以为连接的模型添加ManyToMany关系吗?

class Investor(Profile):
  ROLE = (
    ('AN', 'Angel Investor'),
    ('VC', 'Venture Capital'),
    ('SC', 'Seed Capital')
  )
  role = models.CharField(max_length=2, default='AN', choices=ROLE)
  min_inv = models.DecimalField(
    default=0, max_digits=20, decimal_places=2,
    verbose_name='Minimum Investments per year')
  max_inv = models.DecimalField(
    default=0, max_digits=20, decimal_places=2,
    verbose_name='Maximum investments per year')
  no_startups = models.IntegerField(
    default=0, verbose_name='Number of investments per year')
  rating_sum = models.FloatField(default=0)
  no_raters = models.IntegerField(default=0)
  categories = models.ManyToMany(Category)
  stages = models.ManyToMany(Stage)
  fundings = models.ManyToMany(Funding)

使用manytomany然后你可以分配阶段

investor = Investor.objects.all()[0]
investor.categories.add(category_instance_one, category_instance_two)
investor.categories.all() # retrieves all categories that this investor has