[英]Use foreign key as variable in Django template
我是Django和Python的新手(甚至是編程新手),現在正在創建我的第一個應用程序。 我有一個包含外鍵的模型,該外鍵是多對一關系(一行可以容納許多文章,但每篇文章僅涉及一行)。 在我的模板中,我想連接多個值以創建圖像源的url。
models.py中的相關信息:
class Article(models.Model):
line = models.ForeignKey(Line, null=True)
article = models.CharField(max_length=128)
slug = models.SlugField(null=True)
class Line(models.Model):
line = models.CharField(max_length=128, unique=True)
相關視圖將Article.objects.get(slug=article_slug)
作為context_dict
中的article
發送到模板。 在我的模板中,我包括以下內容並正確返回期望值: {{ article.article }}
和{{ article.line }}
。 如果我串聯article.article
的值,它將返回期望值:
{% with article.article as a %}
這里{{ a }}
顯示article.article的值。 但是,當我嘗試連接article.line
的值時,我沒有任何價值。
{% with article.line as l %}
{{ l }}
不返回任何內容。 我認為這是因為外鍵也可以解釋為一對多,所以我嘗試指定哪個值(我還使用了諸如article.line.all.0
變體)。
{% with article.line_set|first as l %}
{{ l }}
在這里也不返回任何內容。
為什么我可以將article.line
的值作為文本返回到模板中,但不能將其包含在串聯中?
article.line_set
不是打印相關Line
對象的正確方法,因為它們之間沒有這種關系。
至於問題,很有可能article.line
為None
並且我認為Django模板引擎在嘗試訪問null的article.line
實例的.line
屬性時會默默地抑制可能的Models.DoesNotExist
異常。
確保article.line
不為None
以便可以按如下所示打印出它的文本表示形式:
{% with article.line.line as l %}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.