Я стараюсь брать имя автора публикуемой статьи.
в модели
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 %}
этот {{ artigo.autor.username }} не работает. У меня ошибка: Значение исключения: неверный литерал для int() с базой 10: 'ElFrances'
Я не знаю, как взять имя автора или другие детали






Вы пробовали использовать только artigo.autor?
проблема исчезает, но имя пользователя не появляется. Но танк за помощь!
хорошо, я думаю, вы хотите использовать пользователей django, и это нормально, но вот некоторые детали
сначала посмотрите на модель, которую вам нужно импортировать:
from django.contrib.auth.models import User
тогда ты сделаешь это
class Artigo(models.Model):
autor = models.OneToOneField(User, on_delete=models.CASCADE)
скажи мне, если это работает для тебя
также делает * в
{{ artigo.autor.username }}
* is for something? perhaps try deleting itОдин автор может написать много статей, поэтому отношения между автором и статьями являются отношением один ко многим.
Вы получаете ошибку из-за этой строки
autor = models.ForeignKey('auth.User', on_delete = models.CASCADE)
Вместо строки выше замените этой строкой
autor = models.ForeignKey(User, on_delete = models.CASCADE)
А также используйте select_related для производительности запросов, потому что, когда вы получаете информацию об авторе, вы снова попадаете в базу данных.
Эта ошибка не исходит из этого кода. Пожалуйста, покажите полную трассировку.