我有一个模特
class Transaction(models.Model):
sender = models.ForeignKey(MyBankAccount, unique=False, related_name="transactions_sent")
receiver = models.ForeignKey(RecipientBankAccount, unique=False, related_name="transactions_received")
created = models.DateField('transfer request date')
amount = models.FloatField()
createdby=models.ForeignKey(User,null=True)
我使用
显示<li>{{ item.sender }} {{ item.receiver }} {{ item.amount }}</li>
我希望item.sender自动链接到
http://example.com/johnsmith/trans/其中johnsmith是创建事务的用户的名称(也称为createdby)。我已经实现了这个网址的视图。我只需要链接到它。
答案 0 :(得分:2)
所以,大概你的url.py看起来像是:
urlpatterns = patterns(
'',
# Patterns:
url(r'^(?P<username>[\w-]+)/(?P<createdby>[\w-]+)/$', transaction, name="transaction"),
....
您的观点是:
def transaction(request, username, createdby):
...
然后你的模板片段是:
<a href="{% url transaction item.sender item.receiver %}">{{ item.sender }}</a>
或者您可以在Transaction
类中定义以下内容(必须保留urls.py文件):
def get_absolute_url(self):
from django.core.urlresolvers import reverse
return reverse('transaction', kwargs={'username': self.sender, 'createdby': self.receiver})
然后你的模板看起来像:
<a href="{{ item.get_absolute_url }}">{{ item.sender }}</a>
但是Geez,这都是Django 101。