Найти - Пользователи
Полная версия: Reverse for 'url' with keyword arguments '{'pk': ''}' not found
Начало » Django » Reverse for 'url' with keyword arguments '{'pk': ''}' not found
1
Hennadii
Есть две модели в одном проекте, почему при обращении, например к записи sale/1 возвращает ошибку
 Reverse for 'fuel_edit_url' with keyword arguments '{'pk': ''}' not found. 1 pattern(s) tried: ['fuel\/(?P<id>[0-9]+)\/edit\/$'].
Пытается вернуть Reverse первой модели? Нигде не нашел примера размещения двух приложений в одном проекте.
 base.url urlpatterns =  path('admin/', admin.site.urls), path('', include('core.urls')), path('fuel/', include('fuel.urls')), path('sale/', include('sale.urls')), 
core.url urlpatterns =  path('', views.welcome, name='welcome'), 
fuel.url urlpatterns =  path('', FuelListView.as_view(), name='fuel_list_url'), path('create/', FuelCreateView.as_view(), name='fuel_create_url'), path('<int:id>/', FuelDetailView.as_view(), name='fuel_detail_url'), path('<int:id>/edit/', FuelUpdateView.as_view(), name='fuel_edit_url'), 
sale.url urlpatterns =  path('', SaleListView.as_view(), name='sale_list_url'), path('<int:id>/', SaleDetailView.as_view(), name='sale_detail_url'),

Fuel.view

   
class FuelListView(ListView): template_name = 'fuel/fuel_list.html' queryset = Fuel.objects.all() paginate_by = 15 context_object_name = 'fuels'
class FuelDetailView(DetailView): template_name = 'fuel/fuel_detail.html' queryset = Fuel.objects.all()
def get_object(self):
    id_ = self.kwargs.get('id')
    return get_object_or_404(Fuel, id=id_)
class FuelCreateView(CreateView): template_name = 'fuel/fuel_create.html' form_class = FuelForm queryset = Fuel.objects.all()
def form_valid(self, form):
    return super().form_valid(form)
class FuelUpdateView(UpdateView): template_name = 'fuel/fuel_update.html' form_class = FuelForm queryset = Fuel.objects.all()
def get_object(self):
    id_ = self.kwargs.get('id')
    return get_object_or_404(Fuel, id=id_)
def form_valid(self, form):
    return super().form_valid(form)

Sale.view
 class SaleListView(ListView):
    template_name = 'sale/sale_list.html'
    queryset = Sale.objects.all()
    context_object_name = 'sales'
class SaleDetailView(DetailView):
    template_name = 'sale/sale_detail.html'
    queryset = Sale.objects.all()
    def get_object(self):
        id_ = self.kwargs.get('id')
        return get_object_or_404(Sale, id=id_)

sale_list.html
 {% extends 'base.html' %}
{% block list %}
<div class="col-md-12 ml-3">
    <p><a class="btn btn-primary mt-3 ml-3" href="#" role="button">Новая заявка</a>
    {% for sale in sales %}
    <p><h6><a href="{{ sale.get_absolute_url }}">
        <ins style="color: Black;">Дата:</ins> {{ sale.datetime|date:"j N o"  }}
        <ins style="color: Black;">Номер заявки:</ins> {{ sale.gennum }}
        <ins style="color: Black;">Менеджер:</ins> {{ sale.author.get_full_name }}
        <ins style="color: Black;">Партнер:</ins> {{ sale.partner }}
        <ins style="color: Black;">Товар:</ins> {{ sale.product }}</a></h6>
    {% endfor %}
</div>
{% endblock %}

sale.models
 class Sale(models.Model):
    author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    datetime = models.DateTimeField(auto_now_add=True)
# имя партнера
    partner = models.ForeignKey(Partner, on_delete=models.CASCADE)
    product = models.CharField(max_length=64)
    quality = models.CharField(max_length=32)
    quantity = models.IntegerField()
    gennum = models.CharField(max_length=16, null=True, blank=True)
    class Meta:
        ordering = ['-datetime']
    def __str__(self):
        return "%s %s" % (self.author, self.partner)
    def get_absolute_url(self):
        return reverse('sale_detail_url', kwargs={'id': self.id})
m0nte-cr1st0
А где ты обращаешься к fuel_edit_url?
Hennadii
В том и вопрос что я к нему не обращаюсь. Когда в списке заявок пытаюсь посмотреть детальную информацию, sale app написан идентично fuel app в fuel app работает все: list, detail, create, update.
Hennadii
Вот снимок екрана
FishHook
Hennadii
В том и вопрос что я к нему не обращаюсь.
Так не бывает, дайте весь код архивом
Hennadii
Вот.
FishHook
Hennadii
В том и вопрос что я к нему не обращаюсь.

А вот это что?

<a class="btn btn-primary" href="{% url 'fuel_edit_url' id=fuel.id %}" target="_blank" role="button">Редактировать</a>
Hennadii
Такая строка есть в fuel_detail.html, но она рабочая, возвращает форму редактирования.Еще есть строка в sale_detail.html только она закоментирована:
         
<!-- <a class="btn btn-secondary" href="{% url 'fuel_edit_url' pk=fuel.pk %}" target="_blank" role="button">Редактировать</a> -->.
FishHook
Hennadii
только она закоментирована

Это она для браузера закомментирована, а для jinja эти коментарии ничего не значать, у неё свои коментарии.
Hennadii
Вот ЛОХ! Большое спасибо за науку!!!

This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB