Как создать ссылку на сайте Django - PullRequest
0 голосов
/ 26 мая 2020

Я работаю в блоге Django. Я создал столбец URL-адресов в сообщении администратора следующим образом. enter image description here

однако, когда я нажимаю ссылку на странице, страница переходит по ссылке, которая содержит localhost: 8000 в начале URL-адреса. например, http://127.0.0.1: 8000 / Yahoo / www.yahoo.com enter image description here

Я сделал ссылку как <a href="{{ post.url }}">Visit yahoo.com!</a>, однако это, вероятно, неправильный способ сделать Это. Не могли бы вы посоветовать мне, как решить эту проблему?

мой класс в model.py

class Post(models.Model):
title = models.CharField(max_length=200, unique=True)
slug = models.SlugField(max_length=200, unique=True)
author = models.ForeignKey(User, on_delete= models.CASCADE,related_name='blog_posts')
updated_on = models.DateTimeField(auto_now= True)
content = models.TextField()
created_on = models.DateTimeField(auto_now_add=True)
status = models.IntegerField(choices=STATUS, default=0)
url = models.CharField(max_length=200, unique=True, default='')
class Meta:
    ordering = ['-created_on']

def __str__(self):
    return self.title

мой html

{% extends 'base.html' %} {% block content %}

<div class="container">
  <div class="row">
    <div class="col-md-8 card mb-4  mt-3 left  top">
      <div class="card-body">
        <h1>{% block title %} {{ object.title }} {% endblock title %}</h1>
        <p class=" text-muted">{{ post.author }} | {{ post.created_on }}</p>
        <p class=" text-muted">{{ post.url }}</p>

        <a href="{{ post.url }}">Visit yahoo.com!</a>

        <p class="card-text ">{{ object.content | safe }}</p>
      </div>
    </div>
    {% block sidebar %} {% include 'sidebar.html' %} {% endblock sidebar %}
  </div>
</div>

{% endblock content% }

1 Ответ

1 голос
/ 26 мая 2020

http://127.0.0.1: 8000 / Yahoo / www.yahoo.com

Это означает, что указанная вами ссылка была сделана относительно вашего текущего пути:

<a href="{{ post.url }}">Visit yahoo.com!</a>

Сделать его абсолютным путем добавления префикса sla sh тоже не поможет, так как он по-прежнему будет ссылаться на ваш текущий работающий сервер

<a href="/{{ post.url }}">Visit yahoo.com!</a>

http://127.0.0.1: 8000 / www.yahoo.com

Если post.url является внешним и находится за пределами вашего сервера, добавьте префикс http:// или https://

<a href="http://{{ post.url }}">Visit yahoo.com!</a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...