【发布时间】:2022-01-25 19:41:23
【问题描述】:
美好的一天,我有一个页面可以测试创建票证的位置以及列出所有创建的票证(标题)的位置。现在您应该可以点击已创建工单的标题了。
然后按钮会重定向到一个额外的页面,其中包含特定票的所有信息。
我一直在显示用户特定的内容时遇到问题,那么需要做什么才能使每个链接的 href="" 在 HTML 中重定向到特定的票证?
我做了以下 \\forms.py
{% for i in request.user.addtitle_set.all %}
<div>
{% if i.user == request.user %} {{ i.title }} {% endif %}
<form action="{% url SOMETHING_HERE i.id}" style="display: inline">
<button type="submit">View Ticket</button>
</form>
</div>
<br />
{% endfor %}
\\urls.py
path('dashboard/user/ticket', ticket_view),
path('dashboard/user/ticket/<int:id>/',
ticket_system_view, name="view_ticket"),
\\models.py
class Ticket(models.Model):
user = models.ForeignKey(
settings.AUTH_USER_MODEL,
default=None,
null=True,
on_delete=models.CASCADE,
)
title = models.CharField(max_length=200)
description = models.TextField()
creator_adress = models.GenericIPAddressField(null=True)
start_date = models.DateTimeField(default=timezone.now)
def __str__(self):
return str(self.title)
\\views.py
@login_required
def ticket_view(request, id, *args, **kwargs):
try:
obj = Ticket.objects.get(id=id)
except Ticket.DoesNotExist:
return redirect('/')
if request.method == 'POST':
form = TicketForm(request.POST, instance=Ticket(user=request.user))
if form.is_valid():
obj = form.save(commit=False)
obj.creator_adress = get_client_ip(request)
obj.save()
return redirect('/dashboard/user/ticket')
else:
form = TicketForm()
return render(request, 'ticket.html', {'form': form})
def ticket_system_view(request, id, *args, **kwargsw):
# Here I will put all the stuff for the specific ticket page
return render(request, 'ticket_system.html', {})
编辑: 由于错误,我什至无法访问该页面 /dashboard/user/ticket 处的类型错误
ticket_views() 缺少 1 个必需的位置参数:'id'
编辑 2.0: 解决方案:
path('dashboard/user/ticket/', ticket_view),
path('dashboard/user/ticket/<int:id>/',
ticket_system_view, name="view_ticket"),
{% for i in request.user.ticket_set.all %}
<a href="{% url 'view_ticket' i.id %}"
>{% if i.user == request.user %} {{ i.title }} {% endif %}</a
>
<br />
{% endfor %}
【问题讨论】: