0
相關對象的關係領域說我有這兩個型號:發現在Django
class Project(models.Model):
name = models.CharField('Name', max_length=250)
class ProjectUpdate(models.Model):
project = models.ForeignKey(Project)
title = models.CharField('Title', max_length=250)
比方說,在我的代碼我有一個項目實例工作,但我不能假設我的對象與之一起工作的是一個項目實例。我只能假設它有一個或多個相關的模型,我需要處理它。
現在我設法使用相關管理器(project_obj.projectupdate_set)來獲取相關的類名稱。但我現在需要的是知道哪個領域創造了關係。在這種情況下,這將是ProjectUpdate上的「項目」字段。
在那裏我找到一個參考它在相關管理者的core_filters
屬性,它給我的唯一的地方:{「project__id」:1}
我大概可以利用這一點,但給人的感覺並不對。
有什麼想法?
編輯:
這裏的RelatedManager的屬性:
['__class__', '__delattr__', '__dict__', '__doc__', '__format__',
'__getattribute__', '__hash__', '__init__', '__module__', '__new__',
'__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__',
'__str__', '__subclasshook__', '__weakref__', '_copy_to_model', '_db',
'_inherited', '_insert', '_set_creation_counter', '_update', 'add',
'aggregate', 'all', 'annotate', 'bulk_create', 'clear', 'complex_filter',
'contribute_to_class', 'core_filters', 'count', 'create', 'creation_counter',
'dates', 'db', 'db_manager', 'defer', 'distinct', 'exclude', 'exists',
'extra', 'filter', 'get', 'get_empty_query_set', 'get_or_create',
'get_prefetch_query_set', 'get_query_set', 'in_bulk', 'instance', 'iterator',
'latest', 'model', 'none', 'only', 'order_by', 'prefetch_related', 'raw',
'remove', 'reverse', 'select_for_update', 'select_related', 'update', 'using',
'values', 'values_list']
也許這是因爲我使用django 1.4 ..但是我得到這個:AttributeError:'RelatedManager'對象沒有屬性'query_field_name'。我編輯了我的帖子以添加相關管理器的dir()..(太長以備不時之需) –
答案是錯誤的。我的回答只適用於M2M關係。 – thikonom