Thanks for the answer :)
On Sunday, August 21, 2016 at 12:02:26 PM UTC+3, voger wrote:
>
> I barely understand django my self but I hope I am pointing you in the
> right direction.
>
> 1. I don't understand what the (?:/(?P<slug>[\w\d-]+))?/ part in your
> pattern is supposed to do. My regexp-fu is weak so I can't comment on that
>
> 2. Your url will match and pass to the view whatever url you give it. So
> even if you give a pk and slug that don't exist in database, still the
> view will get called as long as the regexp matches.
>
> 3. In your view you check the db against the pk and slug and if not
> found __the view__ rises 404.
>
> 4. You don't check if category exist in database and you don't rise 404
> if not. In this case it is assumed it is always right.
>
>
> On 20/08/2016 06:10 μμ, Yunus wrote:
> > Hello,
> >
> > I want to two slugs in one URL pattern. These slugs from different
> > models. I have a model Link with a many to one relationship with a model
> > category.
> >
> > Actually these two slugs is working. But one of the slugs is accepting
> > whatever I write in the category_slug section of the url.
> >
> > Let's say:I
> > write 127.0.0.1:8000/there_is_no_name_like_that_in_the_database/pk/slug
> this.
> > I am going to this page but there is no category with this name. So,
> > basically is accepting whatever I write.
> > *#links/views.py*
> > |
> > classLinkDetailView(FormMixin,DetailView):
> > model =Link
> > context_object_name ='link'
> > form_class =CommentForm
> > success_url =reverse_lazy('home')
> >
> >
> > defget_object(self,queryset=None):
> >
> >
> returnget_object_or_404(Link,pk=self.kwargs['pk'],slug=self.kwargs['slug'])
> >
> >
> > ...
> > |
> >
> > *#links/urls.py*
> > |
> > urlpatterns =[
> >
> >
> > ...
> >
> > url(
> >
> > regex=r'^k/(?P<category>[\w-]+)/(?P<pk>\d+)(?:/(?P<slug>[\w\d-]+))?/$',
> > view=views.LinkDetailView.as_view(),
> > name='link_detail'
> > ),
> >
> >
> > ...
> > ]
> > |
> >
> > --
> > You received this message because you are subscribed to the Google
> > Groups "Django users" group.
> > To unsubscribe from this group and stop receiving emails from it, send
> > an email to [email protected] <javascript:>
> > <mailto:[email protected] <javascript:>>.
> > To post to this group, send email to [email protected]
> <javascript:>
> > <mailto:[email protected] <javascript:>>.
> > Visit this group at https://groups.google.com/group/django-users.
> > To view this discussion on the web visit
> >
> https://groups.google.com/d/msgid/django-users/0b8482ee-5e64-4ee8-a664-d1d938767bd6%40googlegroups.com
>
> > <
> https://groups.google.com/d/msgid/django-users/0b8482ee-5e64-4ee8-a664-d1d938767bd6%40googlegroups.com?utm_medium=email&utm_source=footer>.
>
>
> > For more options, visit https://groups.google.com/d/optout.
>
>
--
You received this message because you are subscribed to the Google Groups
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-users/c54347a8-42fa-4359-8ecc-6498f602f351%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.