相关疑难解决方法(0)

Django Tastypie:将许多与许多"通过"关系融为一体

我已经对这个问题进行了大量的搜索,并且经历了一系列关于Stack Overflow的相关问题,但似乎没有关于如何通过"中间模型"实现多对多关系的明确答案(或者可能我错过了它).

我有一个名为Sample的模型,它与Region有多对多的关系.有一个连接两者的中间模型,名为SampleRegion.我目前没有保存关于中间模型的任何额外信息,但我可能在将来.

这是我的模特:

class Sample(models.Model):
    sample_id = models.BigIntegerField(primary_key=True)
    description = models.TextField(blank=True)
    objects = models.GeoManager()
    regions = ManyToManyField(Region, through='SampleRegion')
    class Meta:
        db_table = u'samples'
    def save(self, **kwargs):
        # Assign a sample ID only for create requests
        if self.sample_id is None:
            try: id = Sample.objects.latest('sample_id').sample_id + 1
            except Sample.DoesNotExist: id = 1
            self.sample_id = id
        super(Sample, self).save

class Region(models.Model):
    name = models.CharField(max_length=100, unique=True)
    def __unicode__(self):
        return self.name
    class Meta:
        db_table = u'regions'

class SampleRegion(models.Model):
    sample = models.ForeignKey('Sample')
    region = models.ForeignKey(Region)
    class …
Run Code Online (Sandbox Code Playgroud)

django tastypie

6
推荐指数
1
解决办法
2803
查看次数

标签 统计

django ×1

tastypie ×1