簡明問題:
哪些建模在Django上的外部表一個多到多的關係(1.5)的優點和缺點,而無需使用到參數?原因「到」參數在Django爲使用的M2M關係
詳情:
說,我有一個自定義用戶模型用戶配置,我想定義一個M2M關係到相同型號,例如實施以下關係。我可以定義一個外部表(模型)like so:
class Relationship(models.Model):
"""Relationship model"""
from_user = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='from_users')
to_user = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='to_users')
created = models.DateTimeField(auto_now_add=True)
is_blocked = models.BooleanField(default=False)
objects = RelationshipManager()
在這種情況下我應該在M2M字段添加到用戶配置模型如下面顯示?如果是,爲什麼?我可以處理所有隻能使用關係模型用戶之間的關係,是不是?
class UserProfile(AbstractBaseUser, PermissionsMixin):
user_following = models.ManyToManyField('self', through=Relationship, symmetrical=False, related_name='followed')
是的,好,我知道這一點,問題是:如果我使用已定義的M2M(關係)的外部表而不將它鏈接一個m2m字段和「through」參數?優點缺點? – Leonardo
我想你不應該那樣做。如果你爲自己定義了一個表,你應該告訴Django使用它。如果你不知道,Django應該如何知道他必須用它來建立關係?爲了回答你的問題,我沒有看到任何優勢(也許有,但告訴我^^),只有缺點:爲M2M所做的所有Django機制都不能自動工作。 –