Hi Briel i am totally confused now.
My senior told me to write get_absolute_url

so i wrote get_absolute_url like this
class Listing_channels(models.Model):
    list_channel = models.CharField(max_length = 20)
    visibility = models.BooleanField()

    def __unicode__(self):
        return self.list_channel

    def get_absolute_url(self):
        return u'/category/listing_view/%i/' % self.id

and in html template i am calling

{%if listing_result %}
    {% for n in listing_result %}
        <li> <a href="{{n.get_absolute_url}}">{{n.list_channel}}</a></
li>
    {% endfor %}
{% else %}
    <p>not available</p>
{% endif %}
</ul>

so its working fine.

so now i have two mechanism one is your as you told me to write and
second one is
get_absolute_url() function.

Now my confusion is if we have another same class event_channel and
event and many more classes like this then i will have to write
get_absolute_url() for each class
and if go with you then there i need to change only in urls.py that i
think fine.

so i should go with get_absolute_url? give me the best and solid
reason so i could make understand to senior, and you know the senior
behave..


Briel wrote:

> Using urls with names will solve your problem.
>
> Basically if you change your urls.py like this:
>
>     url(
>         r'^category/listing_view/(?P<id>\w+)/$',
>        'mysite.library.views.listing_view',
>        name = 'name_for_this_view'
>     ),
>
> What I have done is to add a name to the url for convenience I also
> used the url() function. This name can now be used instead of the link
> to your view. So if you were to change the site structure, when
> changes would be made to your urlconf, django would then be able to
> figure things out for you. In this version your new link would look
> like this:
>
> <li><a href="
>            {% url name_for_this_view n.id %}
>         ">{{n.list_channel}}</a></li>
>
>
> In the docs you can read about it at
> url(): http://docs.djangoproject.com/en/dev/topics/http/urls/#url
> naming: http://docs.djangoproject.com/en/dev/topics/http/urls/#id2
>
> Good luck.
> -Briel
>
> On 8 Jan., 12:41, Praveen <praveen.python.pl...@gmail.com> wrote:
> > Hi Malcolm i am very new bie of Django. i read through
> > get_absolute_url but do not know how to use.
> > What you have given the answer i tried with that and its working fine
> > but my senior asked me what will happen if i change the site name then
> > every where you will have to change url
> > mysite.library.views.listing_view.
> >
> > so they told me to use get_absolute_url
> >
> > i wrote get_absolute_ul in models.py
> > � � def get_absolute_url(self):
> > � � � � return "/listing/%i/" % self.id
> > and i am trying to use in my html page template but i don't know how
> > to use
> >
> > <li> <a href="{{get_absolute_url}}{{n.id}}">{{n.list_channel}}</a></
> > li>
> >
> > then again same problem. first time when some one click on link it
> > works fine but second time it appends the link 
> > likehttp://127.0.0.1:8000/category/listing_view/3/3
> >
> > Please give me some idea
> >
> > On Jan 8, 3:37�pm, Praveen <praveen.python.pl...@gmail.com> wrote:
> >
> > > Thank you so much Malcolm.
> > > every one gives only the link and tell to read but your style of
> > > solving the problem is amazing. how you explained me in a nice way
> > > that i can never ever find in djangoproject.com.
> > > Thanks you so much malcom
> >
> > > On Jan 8, 3:23�pm, Malcolm Tredinnick <malc...@pointy-stick.com>
> > > wrote:
> >
> > > > I'm going to trim your code to what looks like the relevant portion of
> > > > the HTML template, since that's where the easiest solution lies.
> >
> > > > On Thu, 2009-01-08 at 02:02 -0800, Praveen wrote:
> >
> > > > [...]
> >
> > > > > � � list_listing.html
> >
> > > > > <div id="leftpart">
> > > > > <h3>Sight Seeings</h3>
> > > > > <ul>
> > > > > {%if listing_result %}
> > > > > � � {% for n in listing_result %}
> > > > > � � � � <li><a href="{{n.id}}">{{n.list_channel}}</a></li>
> > > > > � � {% endfor %}
> > > > > {% else %}
> > > > > � � <p>not available</p>
> > > > > {% endif %}
> > > > > </ul>
> > > > > </div>
> >
> > > > [...]
> >
> > > > > I am displaying Listing_channels and Listing on same page. if some one
> > > > > click on any Listing_channels the corresponding Listing must display
> > > > > on same page. that is why i am also sending the Listing_channels
> > > > > object to list_listing.html page. if some one click first time on
> > > > > Listing_channels it shows the 
> > > > > urlhttp://127.0.0.1:8000/category/listing_view/1/
> > > > > but second time it appends 1 at the end and the url becomes
> > > > >http://127.0.0.1:8000/category/listing_view/1/1
> >
> > > > The above code fragment is putting an element in the template that looks
> > > > like
> >
> > > > � � � � <a href="1">...</a>
> >
> > > > That is a relative URL reference and will be relative to the URL of the
> > > > current page (which is .../category/listing_view/1/). In other words, it
> > > > will be appended to that URL. One solution is to change the relative
> > > > reference to look like
> >
> > > > � � � � <a href="../1">...</a>
> >
> > > > or, in template language:
> >
> > > > � � � � <li><a href="../{{n.id}}">{{n.list_channel}}</a></li>
> >
> > > > That assumes you will only be displaying this template
> > > > as ..../listing_view/1/ (or with a different number as the final
> > > > component), since it will *always* remove the final component and
> > > > replace it with the id value.
> >
> > > > The alternative, which is a little less fragile, is to use the "url"
> > > > template tag to include a URL that goes all the way back to the hostname
> > > > portion. You could write
> >
> > > > � � � � <li><a href="
> > > > � � � � � �{% url mysite.library.views.listing_view n.id %}
> > > > � � � � ">{{n.list_channel}}</a></li>
> >
> > > > (I've put in some line breaks just to avoid unpleasant line-wrapping).
> > > > The {% url ... %} portion will return "/category/listing_view/1/" -- or
> > > > whatever the right n.id value is -- which will always be correct.
> >
> > > > Have a read 
> > > > ofhttp://docs.djangoproject.com/en/dev/ref/templates/builtins/#urlif
> > > > you're not familiar with the URL tag.
> >
> > > > Regards,
> > > > Malcolm
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to