[英]Get Current User in Models
我正在開發一個在models.py中具有投資和發票類的項目。 他們的工作方式是用戶進行投資,並在保存投資模型的同時創建發票。 以下是相關代碼:
class Investment(models.Model):
...
def save(self, *args, **kwargs):
current_investment = Investment.objects.get(pk=self.pk)
create_invoice = Invoice.objects.create(investment=current_investment,
fee_type='Mngmt.',
amount=self.amount*fee_amount)
class Invoice(models.Model):
user = models.ForeignKey(User)
investment = models.ForeignKey(Investment)
fee_type = models.CharField(max_length=24)
amount = models.DecimalField(max_digits=12, decimal_places=2, default=0)
date = models.DateTimeField(default=timezone.now, blank=True)
def __str__(self):
return self.investment.fund.name
因此,基本上,當保存投資類時,會創建一個發票對象,但是我想獲取當前用戶並將其設置為發票類中的用戶字段。 關於如何完成這項工作的任何想法? 謝謝。
在模型范圍內以某種方式訪問當前request
和當前request.user
的反模式。
基本上,這些操作是在視圖部分中完成的。 因此,最好以負責任的態度來傳遞當前用戶,以節省投資或發票
如果“當前用戶”的意思是“ request.user”,則可以從線程本地獲取請求對象,但這不是一個好習慣。
django-threadlocals為此提供了一個幫助器,並提供了有關它的更多信息。
過去,它對我有用,但如今,我會不惜一切代價避免使用它,並堅持最佳實踐,並盡可能降低我的技術債務。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.