Форум программистов, компьютерный форум, киберфорум
Python: Django
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
1 / 1 / 0
Регистрация: 19.12.2017
Сообщений: 22

Не определяется id объекта

25.12.2020, 15:30. Показов 3329. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, помогите разобраться. пытаюсь вывести объекты бд, с ссылками на страницы.
Название поста, ссылка на страницу поста по id, все работает.
Точно также пытаюсь сделать ссылку на автора, но id не отображается/не определяется
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<html>
{% if latest_post_list %}
    <ul>
    
    {% for post in latest_post_list %}
        <li><a href="/polls/{{ post.id }}/Post1">{{ post.name_post}}</a></li>
        <br>
        
    {% endfor %}
    </ul>
{% else %}
    <p>No posts are available.</p>
{% endif %}
 
 
{% if latest_author_list %}
    <ul>
    {% for author in latest_author_list %}
        
        <li><a href="/polls/{{ author.id }}/Author1">{{ author.last_name}}</a></li>
        <br>
        
    {% endfor %}
    </ul>
{% else %}
    <p>No posts are available.</p>
{% endif %}
Миниатюры
Не определяется id объекта   Не определяется id объекта  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.12.2020, 15:30
Ответы с готовыми решениями:

HDD определяется в BIOS но не запускается и неправильно определяется объем диска
Всем доброго времени суток, прошу вас о помощи в борьбе с моим винтом от ноута. Попробую описать подробно, как все было. В один прекрасный...

JF v95c не определяется (или определяется как USB MEMORY BAR)
Недавно столкнулся с такой ситуацией. Подключаю флэху а она не работает... т.е. на win xp определяется как неопознанное устройство. на...

Не определяется жесткий диск Seagate Barracuda st2000dm001. Так вот, в биосе он определяется а в windows нет.
Здравствуйте! Помогите пожалуйста разобраться. Имеется жесткий диск Seagate Barracuda st2000dm001. Так вот, в биосе он определяется а в...

7
21 / 12 / 9
Регистрация: 12.02.2020
Сообщений: 126
25.12.2020, 18:21
Dritmy, где вьюха, где модели? Или на кофейной гуще гадать что там у тебя
<a href="/polls/{{ post.id }}/Post1"> - извини, но это какая-то дичь
0
0 / 0 / 1
Регистрация: 05.02.2021
Сообщений: 21
05.02.2021, 18:17
Доброго времени суток. Видимо, у меня похожая проблема, поэтому пишу сюда. Не могу разобраться, но чувствую, что какая-то ерунда. Для знающих людей - раз плюнуть ))).
Ниже размещаю код. Новостной сайт с регистрацией пользователя, созданием новости, ее редактированием и комментарием к ней. В общем, все работает, кроме небольшого бага. Когда работаю как незарегистрированный пользователь, то все в порядке. Все формы и ссылки работают. Но когда регистрируюсь, то при отправке формы получаю ошибку:
Reverse for 'edit' with keyword arguments '{'pk': ''}' not found. 1 pattern(s) tried: ['news/(?P<pk>[0-9]+)/edit$']
Странно, что внутри метода post() класса NewsDetailView, в операторе if одна ветка выдает ошибку, а другая подобная работает.

forms.py
Python
1
2
3
4
5
class CommentForm(forms.ModelForm):
 
    class Meta:
        model = Comment
        fields = ['user_name', 'text_comment']
2 модели в models.py
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class News(models.Model):
    title = models.CharField(max_length=100, verbose_name='Заголовок', db_index=True)
    content = models.TextField(default='', verbose_name='Содержание')
    create_date = models.DateField(auto_now_add=True, verbose_name='Дата создания')
    edit_date = models.DateField(auto_now=True, verbose_name='Дата редактирования')
    activity = models.BooleanField(default=True, verbose_name='Активность')
 
    def __str__(self):
        return '{}, {}'.format(self.title, self.create_date)
 
    def get_absolute_url(self):
        return reverse('mane_page')
 
    class Meta:
        ordering = ['-create_date']
 
 
class Comment(models.Model):
    user_name = models.CharField(max_length=30, verbose_name='Пользователь', db_index=True)
    text_comment = models.TextField(default='', verbose_name='Комментарий')
    news = models.ForeignKey('News', on_delete=models.CASCADE, default=None, null=True)
    user = models.ForeignKey(User, on_delete=models.CASCADE, default=None, null=True)
 
    def __str__(self):
        return self.user_name
urls.py
Python
1
2
3
4
5
6
7
urlpatterns = [
    path('', views.ManePage.as_view(), name='mane_page'),
    path('create', views.NewsCreateView.as_view(), name='create'),
    path('news', views.NewsListView.as_view(), name='news'),
    path('news/<int:pk>/', views.NewsDetailView.as_view(), name='news_detail'),
    path('news/<int:pk>/edit', views.NewsUpdateView.as_view(), name='edit'),
]
views.py
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
class ManePage(View):
    def get(self, request):
        return render(request, 'app_news/mane_page.html')
 
 
class NewsCreateView(generic.CreateView):
    model = models.News
    fields = ['title', 'content', 'activity']
 
 
class NewsUpdateView(generic.UpdateView):
    model = models.News
    fields = ['title', 'content', 'activity']
 
 
class NewsListView(generic.ListView):
    model = models.News
    template_name = 'app_news/news.html'
    context_object_name = 'news'
 
 
class NewsDetailView(generic.DetailView):
    model = models.News
    template_name = 'app_news/news_detail.html'
    context_object_name = 'news'
 
    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        comment_form = forms.CommentForm()
        if self.request.user.is_authenticated:
            comment_form.fields['user_name'].widget = HiddenInput()
        context['comment_form'] = comment_form
        return context
 
    def post(self, request, pk):
        if request.user.is_authenticated:
            comment_form = forms.CommentForm(request.POST)
            if comment_form.is_valid():
                models.Comment.objects.create(user_name=request.user.username,
                                              text_comment=comment_form.cleaned_data['text_comment'],
                                              news=models.News.objects.get(id=pk),
                                              user=request.user)
                return redirect('news')
        else:
            comment_form = forms.CommentForm(request.POST)
            if comment_form.is_valid():
                models.Comment.objects.create(user_name=comment_form.cleaned_data['user_name'] + ' Аноним',
                                              text_comment=comment_form.cleaned_data['text_comment'],
                                              news=models.News.objects.get(id=pk))
                return redirect('news')
        return render(request, 'app_news/news_detail.html', {'comment_form': comment_form})
0
26 / 36 / 15
Регистрация: 15.01.2017
Сообщений: 311
06.02.2021, 14:22
вот возьми! и найди! в своем массиве=latest_post_list
и, задумайся
0
0 / 0 / 1
Регистрация: 05.02.2021
Сообщений: 21
07.02.2021, 19:49
То, что очевидно для вас, может совсем иначе выглядеть для другого. Мне, кажется ваш ответ, в общем-то не имеет смысла и не стоило тратить на него время, равно как и "разуй глаза", "включи мозги", "читай документацию" и прочее. Я и разул, и включил, и прочел. Но ситуация не прояснилась, поэтому и написал сюда. Логика моих рассуждений следующая,,, URL (/news/<intk>) обрабатывается классом NewsDetailView. Метод post() этого класса получает в качестве аргументов объект request и целое pk. В методе post() 2 if-а - работа под зарегистрированным пользователем и не зарегистрированным. Во втором случае все работает, следовательно, pk корректно передается в post(). Но для первого случая выдается ошибка Reverse for 'edit' with keyword arguments '{'pk': ''}' not found. 1 pattern(s) tried: ['news/(?P<pk>[0-9]+)/edit$'], то есть pk пустой. И почему всплывает url 'edit' ('/news/<intk>/edit')? Ведь отрабатывает метод post() класса NewsDetailView для url 'news/<intk>'.
0
243 / 178 / 73
Регистрация: 17.10.2018
Сообщений: 749
07.02.2021, 20:05
Для начала неплохо бы научиться в теги код оборачивать. Отталкивает неверное оформление потенциальных помощников.
1
26 / 36 / 15
Регистрация: 15.01.2017
Сообщений: 311
08.02.2021, 08:15
<a href="/polls/{{ author.id }}/Author1">
ну, и какой смысл в документации....
0
 Аватар для Wolflind
127 / 107 / 31
Регистрация: 17.03.2016
Сообщений: 445
Записей в блоге: 1
14.02.2021, 22:10
и в таких случаях лучше определять метод
Python
1
2
def get_absolute_url(self)
     return reverse('author', args=[self.id])
админки появятся ссыки на страницу
а в шаблоне делается так
Python
1
2
3
{% url 'author' author.id %},
# или так при наличии get_absolute_url
{{author.get_absolute_url}}
Добавлено через 6 минут
Цитата Сообщение от Dritmy Посмотреть сообщение
"/polls/{{ author.id }}/Author1"
это плахой вариант так как ссылка может изменится потом замучаетесь искать и править
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.02.2021, 22:10
Помогаю со студенческими работами здесь

HDD определяется в BIOS но не определяется в ОС
Доброе время суток! Столкнулся с проблемой связанным с винтом. После перезагрузки компа винчестер не определяется вин 7. Запуск винды при...

Nokia N95 определяется на windows 8.1, но не определяется на windows 7
Имеется мобила Nokia N95. Решил подключить к компу (Windows 8.1). Всё ОК. А тут вдруг решил к ноуту трубу воткнуть. Пишет, что &quot;не...

Вывод фото из папки объекта, название которой совпадает с ID этого объекта
Д.День. суть вопроса такая есть путь в корне CMS images/objects_db/xxxxA где xxxxA это папки (создаваемые сторонним софтом) с...

Требуется ли при удалении объекта посредством delete указывать тип объекта?
например, есть указателиvoid *p1; void *p2; есть VCL-объект TButton, есть самописный класс TMyClass; создаются объектыp1=new...

В экземпляре объекта не задана ссылка на объект при динамическом создании объекта
Выдается ошибка NullReferenceException в private void button2_Click(object sender, EventArgs e) { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru