You’ll want to use card.get_absolute_url.
See https://docs.djangoproject.com/en/2.0/ref/models/instances/#get-absolute-url
In your get_absolute_url, you should probably use the reverse method to use the 
name of a URL rather than hard-coding it in the method.  That’s the second 
example in that section.

From: django-users@googlegroups.com [mailto:django-users@googlegroups.com] On 
Behalf Of Lylio
Sent: Wednesday, February 14, 2018 9:15 AM
To: Django users
Subject: Re: Basic note/trello app - how to link model object IDs

Thanks for the reply Gonzalo, I really appreciate the feedback.

So, conceptually I understand how the remaining pieces of this app fit together 
- but could I ask for just a little more of your help as I'm struggling with 
coding the details of what's needed.

Let's start basic - I've got some 'cards' in my database and on one of the web 
pages the title of the card is presented in a list (with some CSS styling to 
present the list item as a rectangle):

<ul>
       {% for card in cards.all %}
           <li class="card">{{ card.title }}  </li>
       {% endfor %}
</ul>

I'd like to click on one of the items in the list and open up a new page 
showing all the database details for that particular list item (title, 
description, time of creation, etc). Roughly, would I change the list items 
into links:

<ul>
       {% for card in cards.all %}
           <li class="card"><a href='card.html/get(this_object_id)>{{ 
card.title }}</a></li>

       {% endfor %}
</ul>

Then there would be a new view defined, something like

def card(request):
    object = get(this_object_id)
    context = {'cards': object}
    return render(request, 'scrumbuddy/card.html', context)

I know this code is incorrect, but is it roughly how I should proceed? 
Connecting the list item URL to the card view which I don't really understand 
how to do.

Many thanks

Lylio


On Tuesday, 13 February 2018 14:18:25 UTC, Gonzalo Delgado wrote:
Hi Lylio,

On 12/2/18 16:20, Lylio wrote:
> 1. To click on a card so it opens up and displays the details, am I right
> to say I should create a card.html file in the templates folder for this?

It isn't necessary, but it is a good idea
What you need is to create a view that renders such template.
I suggest you write your own view function that does that, but what
you'd usually do is just use a generic view and either pass it the
template you want to use, or name the template in a way the generic view
will find it on its own.
See:
https://docs.djangoproject.com/en/2.0/topics/class-based-views/generic-display/

> 2. I'm confused about how Django keeps track of the cards in my app - I
> presume each card object has an ID in the database and I'd need this
ID in
> order to retrieve the card's details when it's clicked - but I'm
unsure of
> how to link the two. In the two pictures above, say someone clicked on
the
> 'class progression' card on the left... I'd like a new page to open up
that
> display the details for that card and allows the user to edit the info or
> completely delete the card.

Yes, in general, every Django model instance has an id (unless you
specifically tell it not to), and you can use it to create urls for the
detail view I mentioned earlier. This is a good start, but you'll later
want to add a SlugField to your Card model, and use that instead of the
id so urls look nicer.

> I'm maybe asking a bit much here - but I'm unsure of how complex these
> requirements are. It feels like it should be *fairly *straightforward.
Any
> thoughts or advice would be greatly appreciated.

I can assure you using Django for a project like yours is *very*
straightforward.
When in doubt, revisit the Django tutorial. This part is a good one for
where you're at: https://docs.djangoproject.com/en/2.0/intro/tutorial03/


--
Gonzalo Delgado
--
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 
django-users+unsubscr...@googlegroups.com<mailto:django-users+unsubscr...@googlegroups.com>.
To post to this group, send email to 
django-users@googlegroups.com<mailto:django-users@googlegroups.com>.
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/eee70b8a-daff-453f-bb46-b4c2769d33e9%40googlegroups.com<https://groups.google.com/d/msgid/django-users/eee70b8a-daff-453f-bb46-b4c2769d33e9%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 django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
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/29197cad508a48fe881f19125a52c08f%40ISS1.ISS.LOCAL.
For more options, visit https://groups.google.com/d/optout.

Reply via email to