django多对多模型简单逻辑

时间:2013-03-28 03:00:36

标签: python database django django-models foreign-key-relationship

我试图理解django模型中的这个多领域逻辑。

我有两个django模型:locationimage

我还有另一个名为location_has_image的第三个django模型。此模型以此形式定义。

class location_has_image(models.Model):
  of_location = models.ForeignKey(location,related_name="of_location")
  of_image = models.ForeignKey(image,related_name="of_image")

我的问题是,当我保存新的locationimage对象时,是否必须将某些内容保存到此模型中?或者这个location_has_image会自动设置为新创建的对象吗?或者我在这里以错误的方式思考?

请帮忙!

1 个答案:

答案 0 :(得分:1)

您应该使用 ManyToManyField 。它为您创建中间联接表并对其进行管理。

Django docs的例子:

from django.db import models

class Publication(models.Model):
    title = models.CharField(max_length=30)

    def __unicode__(self):
        return self.title

    class Meta:
        ordering = ('title',)

class Article(models.Model):
    headline = models.CharField(max_length=100)
    publications = models.ManyToManyField(Publication)

    def __unicode__(self):
        return self.headline

    class Meta:
        ordering = ('headline',)

实施例: https://docs.djangoproject.com/en/dev/topics/db/examples/many_to_many/

现场文档: https://docs.djangoproject.com/en/dev/ref/models/fields/#ref-manytomany