Как отправить строковый параметр в URL с путем? - PullRequest
0 голосов
/ 26 января 2019

Я хочу отправить строку в качестве параметра на один из моих URL в urls.py в Django. URL-адрес путь ('соревнования // о', views.comp_about, name = 'comp_about'),

Я отправляю свою строку через мой HTML-файл как

   <a href="% url 'comp_about' {{c.comp_name}}%">Register Now!</a>

где c - мой объект с элементом данных comp_name

это окончательный URL после нажатия http://127.0.0.1:8000/competitions/%%20url%20'comp_about'%20Comp1%

Там написано, что страница не найдена!

Я искал в SO и Google проблему, с которой я столкнулся.

views.py

@login_required(login_url='login')
def comp_about(request,comp_name):
comps= Competition.objects.get(comp_name=comp_name)
context={
   "comps": comps
}
return render(request,"competition/about.html",context)

HTML-файл

<h4>List of Comps</h4>
<br>
<div class="section">
    {% if comps %}
    <ul>   
    {% for c in comps%}
         <li>
            {{c.comp_name}} <br> <a href="% url 'comp_about'       {{c.comp_name}}%">Register Now!</a>
         </li>
         <br><Br>
    {% endfor %}

    {% endif%}
</ul>
</div>

urls.py

path('competitions/<comp_name>/about', views.comp_about, name='comp_about'),

models.py

class Competition(models.Model):
comp_name = models.CharField(max_length=75)
comp_description = models.TextField(max_length=10000)
comp_team_size = models.IntegerField(null=True,blank=False)
comp_payment_fee = models.IntegerField(null=True,blank=True)
comp_rules = models.TextField(max_length=10000,blank=False)
comp_date = models.DateField(null=True,blank=False)
comp_registration_deadline = models.DateField(null=True,blank=False)
class Meta:
    ordering = ['-id']

def __str__(self):
    return self.comp_name 

1 Ответ

0 голосов
/ 26 января 2019

Я думаю, вы хотите что-то похожее на следующее. Вы можете прочитать больше о синтаксисе и о том, что вы можете сделать в django docs . Обратите внимание, что в вашем OP вы пропускали открывающую и закрывающую скобки { и }, необходимые для фильтра шаблонов django. Убедитесь, что вы включили их.

<a href="{% url 'comp_about' comp_name=c.comp_name%}">Register Now!</a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...