簡體   English   中英

Django與字段和自身的眾多關系具有獨特的共同關系

[英]Django unique together relationship with field and manytomany on self

我嘗試使用語言和內容來創建帖子,並將其與同一頁面的其他版本相關聯,但是我被卡住了

class Page(models.Model):
    content = models.TextField()
    language = models.CharField(max_length=7, choices=settings.LANGUAGES)
    versions = models.ManyToManyField('self', blank=True)
    class Meta:
        unique_together = ('language', 'versions',)

這將無法正常工作,因為Django不允許創建“唯一的” ManyToMany字段。

然后,我嘗試通過相關模型創建相同的關系:

class VersionsPage(models.Model):
    pass
    # ToDo: add unique together here,  to foreign key field

class Page(models.Model):
    ...
    versions = models.ManyToManyField('self', blank=True, through="VersionsPage")

有誰知道如何在不使用symmetric = False的情況下做到這一點?

我認為您正在尋找這樣的東西:

class Page(models.Model):
    pass

class PageVersion(models.Model):
    page = models.ForeignKey(Page, related_name='versions')
    content = models.TextField()
    language = models.CharField(max_length=7, choices=settings.LANGUAGES)

    class Meta:
        unique_together = ('page', 'language',)


#getting all page versions:
page = Page.objects.get(pk=some_id)
versions = page.versions.all()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM