gpt4 book ai didi

python - Django - 从 ModelForm 获取模型对象属性

转载 作者:行者123 更新时间:2023-11-28 19:09:27 25 4
gpt4 key购买 nike

我有一个 ModelFormSet:

TransactionFormSet = modelformset_factory(Transaction, exclude=("",))

有了这个模型:

class Transaction(models.Model):
account = models.ForeignKey(Account)
date = models.DateField()
payee = models.CharField(max_length = 100)
categories = models.ManyToManyField(Category)
comment = models.CharField(max_length = 1000)
outflow = models.DecimalField(max_digits=10, decimal_places=3)
inflow = models.DecimalField(max_digits=10, decimal_places=3)
cleared = models.BooleanField()

这是模板:

{% for transaction in transactions %}
<ul>
{% for field in transaction %}
{% ifnotequal field.label 'Id' %}
{% ifnotequal field.value None %}
{% ifequal field.label 'Categories' %}
// what do i do here?
{% endifequal %}
<li>{{ field.label}}: {{ field.value }}</li>
{% endifnotequal %}
{% endifnotequal %}
{% endfor %}
</ul>
{% endfor %}

View :

def transactions_on_account_view(request, account_id):
if request.method == "GET":
transactions = TransactionFormSet(queryset=Transaction.objects.for_account(account_id))
context = {"transactions":transactions}
return render(request, "transactions/transactions_for_account.html", context)

我想在一个页面上列出所有的交易信息。如何列出交易的“帐户”属性和“类别”?目前模板只显示他们的 id,我想为用户提供一个很好的表示(最好是从他们的 str() 方法)。

我认为可行的唯一方法是遍历 FormSet,获取 Account 和 Category 对象的 ID,通过它们的 ID 获取对象并将我想要的信息存储在列表中,然后从那里提取它在模板中,但这对我来说似乎相当可怕。

有更好的方法吗?

最佳答案

感谢这些评论,我发现我所做的事情非常愚蠢且毫无意义。

这个有效:

1) 获取所有的Transaction对象

transactions = Transaction.objects.for_account(account_id)

2) 传递给模板

context = {"transactions":transactions,}
return render(request, "transactions/transactions_for_account.html", context)

3)访问属性,完成

  {% for transaction in transactions %}
<tr>
<td class="tg-6k2t">{{ transaction.account }}</td>
<td class="tg-6k2t">{{ transaction.categories }}</td>
<td class="tg-6k2t">{{ transaction.date }}</td>
<td class="tg-6k2t">{{ transaction.payee }}</td>
<td class="tg-6k2t">{{ transaction.comment }}</td>
<td class="tg-6k2t">{{ transaction.outflow }}</td>
<td class="tg-6k2t">{{ transaction.inflow }}</td>
<td class="tg-6k2t">{{ transaction.cleared }}</td>
</tr>
{% endfor %}

关于python - Django - 从 ModelForm 获取模型对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42246788/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com