Как взять имя пользователя admin в html - PullRequest
0 голосов
/ 15 февраля 2019

Я пытаюсь взять имя автора за опубликованную статью.

в модели

class Artigo(models.Model):
  autor = models.ForeignKey('auth.User', on_delete = models.CASCADE)
  titulo = models.CharField(max_length = 100)
  categoria = models.CharField(max_length = 20)
  conteudo = models.TextField()
  data_publicacao = models.DateTimeField(
    default = timezone.now
    )

def publicacao(self):
    self.data_publicacao = timezone.now()
    self.save()

def __str__(self):
    return self.titulo

в виде

def noticias(request):
 artigos = Artigo.objects.filter(data_publicacao__lte = timezone.now()).order_by('data_publicacao')
return render(request, 'noticia/noticias.html', {'artigos':artigos})

в html

<h1>Noticias</h1>
{% for artigo in artigos %}
  <div>
    <h1><a href ="">{{ artigo.titulo}} </a> </h1>
    <p>{{ artigo.conteudo }}</p>
    <p>Publicado em: {{ artigo.data_publicacao }}</p>
    <p>{{ artigo.autor.username }}</p>*
  </div>
{% endfor %}

this {{artigo.autor.username}} не работает.У меня ошибка: Значение исключения: недопустимый литерал для int () с основанием 10: «ElFrances»

Я не знаю, как взять имя автора или другие детали

Ответы [ 3 ]

0 голосов
/ 15 февраля 2019

хорошо, я думаю, что вы хотите использовать пользователей django, и все в порядке, но вот некоторые детали

посмотрите сначала на модель, вам нужно ее импортировать:

from django.contrib.auth.models import User

затем вы делаете это

class Artigo(models.Model):
autor = models.OneToOneField(User, on_delete=models.CASCADE)

скажите мне, если это работает для вас

также делает * in

{{artigo.autor.username}}

* для чего-то?возможно попробуйте удалить его
0 голосов
/ 16 февраля 2019

Вы получаете ошибку из-за этой строки

autor = models.ForeignKey('auth.User', on_delete = models.CASCADE)

Вместо указанной выше строки замените эту строку

autor = models.ForeignKey(User, on_delete = models.CASCADE)

А также используйте select_related для производительности запроса, потому что при получении сведений об автореВы снова попали в базу данных.

См. Официальную документацию Django для select_related

0 голосов
/ 15 февраля 2019

Вы пытались использовать только artigo.autor?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...