如何在Django中实现这个模型?

时间:2011-08-14 10:50:58

标签: python django-models

我是Django的新手,我在Django中实现这个模型遇到了一些困难:

enter image description here

到目前为止,我的模型在没有“Positions”表的情况下工作,看起来像这样:

from django.db import models
import datetime

class Category(models.Model):
    n_category = models.CharField(max_length=100)

class Directory(models.Model):
    website_name = models.CharField(max_length=200)
    website_url = models.URLField()
    categories = models.ManyToManyField(Category)

我的问题是,如何将“位置”表添加到此模型中?

请给我一个线索。

最诚挚的问候。

1 个答案:

答案 0 :(得分:3)

创建一个模型Position,其中包含到CategoriesDirectory的ForeignKeys以及所需的所有其他数据。然后对ManyToManyField使用through参数。这在Django documentation

中有所描述

示例(如果尚未测试):

class Position(models.Model):
    website_postiton = models.IntegerField()
    category = models.ForeignKey('Category')
    directory = models.ForeignKey('Directory')

class Category(models.Model):
    n_category = models.CharField(max_length=100)

class Directory(models.Model):
    website_name = models.CharField(max_length=200)
    website_url = models.URLField()
    categories = models.ManyToManyField(Category, through=Position)