簡體   English   中英

Django Multiple ForeignKey和相同的相關名稱

[英]Django Multiple ForeignKey and same related name

我想將user鍵用於許多模型。 我不能使用這種方法。 是否有可能為所有外鍵提供通用名稱。 我想在每個模板中訪問x.createdx.updated

class Model_one(models.Model):
    --
    --
    created = models.ForeignKey(User,related_name="created")
    updated = models.ForeignKey(User,related_name="updated")


class Model_two(models.Model):
    --
    --
    created = models.ForeignKey(User,related_name="created")
    updated = models.ForeignKey(User,related_name="updated")


class Model_three(models.Model):
    --
    --
    created = models.ForeignKey(User,related_name="created")
    updated = models.ForeignKey(User,related_name="updated")

為了概括你的方法,你可以做類似的事情:

class BaseModel(models.Model):
    created = models.ForeignKey(User,related_name="created_%(class)s_objects")
    updated = models.ForeignKey(User,related_name="updated_%(class)s_objects")

    class Meta:
        abstract = True


class ModelOne(BaseModel):
    # your model one fields


class ModelTwo(BaseModel):
    # your model two fields

用這種方法你

  • 不需要顯式定義所有模型上的相同字段,因為您從BaseModel繼承。

  • 特殊語法自動創建具有正確類名的后向關系。 因此user.created_modelone_objects.all()將為您提供用戶創建的所有對象。

暫無
暫無

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

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