簡體   English   中英

姜戈。 如何從views.py中的子模型獲取字段?

[英]Django. How to get fields from child model in views.py?

如何從views.py子模型獲取字段? 例如,我有父模型BasicOrder和子模型(擴展BasicOrderTouristVisa

我正在使用 Django 2.0.2 和 Python 3.6.1。 我的models.py是:

class BasicOrder(models.Model):

    user = models.ForeignKey(User, verbose_name=_('User'), on_delete=models.CASCADE)
    status = models.PositiveIntegerField(_('Status'), choices=ORDER_STATUS, default=0)

    def __str__(self):
        return 'Order #{}'.format(self.id)


class TouristVisa(BasicOrder, models.Model):

    citizenship = models.ForeignKey(
        Citizenship, verbose_name=_('Citizenship'), on_delete=models.PROTECT
    )
    invitation_entry = models.PositiveSmallIntegerField(
        _('Invitation entry'), choices=INVITATION_ENTRY
    )

    class Meta:
        ordering = ['id']

能夠訪問來自子模型( TouristVisa )的字段invitation_entry TouristVisa 我在views.py嘗試這種方式:

order = BasicOrder.objects.get(user=request.user.id)
print(order.invitation_entry)

但它的顯示錯誤:

AttributeError: 'BasicOrder' 對象沒有屬性 'invitation_entry'

這是錯誤的,當TouristVisa 從BasicOrder 繼承時,它意味着它也獲得了用戶和狀態字段,而不是相反。 因此,您可以訪問invitation_entry 字段,但也可以調用TouristVisa,因為它是唯一存在的模型。

現在,像這樣訪問它:

order = BasicOrder.objects.get(user=request.user.id)
print(order.touristvisa.invitation_entry)

暫無
暫無

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

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