Ich habe an diesem für ein paar Tage abgehackt ohne Ahnung, warum es nicht funktioniert. Ich habe zwei Ansichten, eine zum Auflisten von Werkzeugen und eine zum Auflisten von Teilen. Ich habe auch die Liste und die Detail-URL für beide. Beide Listenansichten funktionieren und die Werkzeugdetailansicht funktioniert, aber wenn ich auf ein Teilelement klicke, um das Detail zu sehen, wird die korrekte URL im Browser angezeigt, aber ich erhalte einen Fehler wie im Screenshot unten gezeigt um die Ansicht tool_detail zu verwenden. Danke für's Nachsehen.Widersprüchliche Django URLs
Hier ist mein Code für die Überprüfung:
url:
from .views import tool_list, part_list, tool_detail, part_detail
urlpatterns = [
url(r'^products/tools/$', tool_list, name='tool_list'),
url(r'^products/(?P<category>[^\.]+)/(?P<slug>[^\.]+)/$', tool_detail, name='tool_detail'),
url(r'^products/parts/$', part_list, name='part_list'),
url(r'^products/(?P<category>[^\.]+)/(?P<slug>[^\.]+)/$', part_detail, name='part_detail'),
]
Ansicht:
def tool_list(request):
tools = Tool.objects.prefetch_related('uploads').all()
return render(request, 'tool_list.html', {'tools': tools})
def tool_detail(request, **kwargs):
tool = get_object_or_404(Tool, slug=kwargs.get('slug'))
return render(request, 'tool_detail.html', {'tool': tool})
def part_list(request):
parts = Part.objects.prefetch_related('uploads').all()
return render(request, 'part_list.html', {'parts': parts})
def part_detail(request, **kwargs):
part = get_object_or_404(Part, slug=kwargs.get('slug'))
return render(request, 'part_detail.html', {'part': part})
Modelle
class Part(Timestamp):
model_number = models.ForeignKey(ModelNumber, related_name='part_model_number')
category = models.ForeignKey(Category, related_name='part_category')
price = models.DecimalField(max_digits=10, decimal_places=2)
title = models.CharField(max_length=250)
slug = models.SlugField(help_text="slug-title-should-be-like-this")
...
class Tool(Timestamp):
model_number = models.ForeignKey(ModelNumber, related_name='tool_model_number')
price = models.DecimalField(max_digits=10, decimal_places=2)
title = models.CharField(max_length=250)
slug = models.SlugField(help_text="slug-title-should-be-like-this")
category = models.ForeignKey(Category, related_name='tool_category')
...
Haben Sie das zweite und vierte URL-Muster angezeigt? –
Nicht sicher, was du meinst ... ja, ich habe sie gesehen –