[英]Django get access to foreign key of current object in views.py
我有三個模型:
Class Collection(models.Model):
var_1 = .....
var_2 = ....
Class Titles(models.Model):
var_a = models.ForeignKey(Collection,
related_name="has_titles", on_delete=models.CASCADE)
var_b = ...
Class OtherObject(models.Model):
var_x = models.ForeignKey(Collection,
related_name="has_other_object", on_delete=models.CASCADE)
var_y = ...
在 views.py 中,我使用帶有表單的 CBV DetailView(然后使用 formMixin 或 MultipleFormsMixin,但這不是重點)。
所以基本上每個標題都通過外鍵鏈接到集合,每個其他對象也通過外鍵鏈接到集合。
因此,當用戶處於 Title 模型的詳細信息頁面時,他可以填寫表單以添加其他對象,然后該對象將顯示在鏈接到 Title 的 Collection detailView 上。
換句話說,我想要的是當前 Title 的 var_x = var_a :
if form.is_valid():
new_other_object = form.save(commit=False)
new_other_object.var_x = HERE I WANT TO GET var_a OF CURRENT OBJECT
new_other_object.save()
因此,由於 Title 有一個 ForeignKey 包含它所屬的 Collection 的 ID,我嘗試使用諸如 self.get_object() 之類的東西。 我讀過諸如使用 self.get_object().var_a 之類的東西可以工作,但是使用我嘗試過的所有不同解決方案,我都遇到了錯誤,主要是提到該對象必須是 Collection 實例的錯誤。
你將如何實現這一目標?
謝謝。
你只需要做一個查詢集: new_other_object.var_x = Title.objects.get(pk=form['id']) 這樣你就得到了將成為外鍵的對象,然后你插入外鍵字段,然后你保存,應該工作
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.