Thank you so much! That worked!! On Monday, August 27, 2018 at 12:16:09 PM UTC-4, Matthew Pava wrote: > > Oh, yes. I do it all the time myself. > > > > You need to change > > > > category.model_set > > > > to > > > > category.model_set.all > > > > model_set is the manager. You need to treat it like any other manager. > > > > *From:* [email protected] <javascript:> [mailto: > [email protected] <javascript:>] *On Behalf Of *Jay > *Sent:* Monday, August 27, 2018 11:05 AM > *To:* Django users > *Subject:* Re: Printing model fields organized by category > > > > Hmm, I'm getting an error: > > > > [image: Screen Shot 2018-08-27 at 11.58.32 AM.png] > > > > > > > > > > > > > > > > I've changed my urls.py to this: > > > > from django.urls import path > > from . import views > > > > urlpatterns = [ > > path('', views.index, name='index'), > > path('books/', views.BookListView.as_view(), name='books'), > > path('book/<int:pk>', views.BookDetailView.as_view(), > name='book-detail'), > > path('category/', views.CategoryListView.as_view(), name='categories'), > > > On Monday, August 27, 2018 at 11:33:14 AM UTC-4, Matthew Pava wrote: > > Okay, your URL should point to your CategoryListView. That should have > category_list in its context. And the template should in the category_list > template. > > > > *From:* [email protected] [mailto:[email protected]] *On > Behalf Of *Jay > *Sent:* Monday, August 27, 2018 10:28 AM > *To:* Django users > *Subject:* Re: Printing model fields organized by category > > > > Thanks Matthew, here is my views.py file: > > > > > > from django.shortcuts import render #generates HTML fiels using a template > and data > > #from django.http import HttpResponse > > from .models import Book, Author, BookInstance, Genre, Model, > ModelInstance, Category, Ownership, Manufacturer, Location #imports model > classes to access data in views > > from django.views import generic > > > > # Create your views here. > > > > #def index(request): > > # return HttpResponse("Hey") > > > > def index(request): > > """View function for home page of site.""" > > > > #Generate counts of some of the main objects > > num_books = Book.objects.all().count() > > num_instances = BookInstance.objects.all().count() > > > > #Available books (status - 'a') > > num_instances_available = > BookInstance.objects.filter(status__exact='a').count() > > > > #The 'all()' is implied by default. > > num_authors = Author.objects.count() > > > > #Num visits to this view, as counted in the session variable > > num_visits = request.session.get('num_visits', 0) > > request.session['num_visits'] = num_visits + 1 > > > > > > context = { > > 'num_books': num_books, > > 'num_instances': num_instances, > > 'num_instances_available': num_instances_available, > > 'num_authors': num_authors, > > 'num_visits': num_visits, > > } > > > > #Render the HTML template index.html with the data in the context > variable > > return render(request, 'index.html', context=context) > > > > class BookListView(generic.ListView): > > model = Book > > > > class BookDetailView(generic.DetailView): > > model = Book > > > > class ModelListView(generic.ListView): > > model = Model > > > > class ModelDetailView(generic.DetailView): > > model = Model > > > > class CategoryListView(generic.ListView): > > model = Category > > > > class CategoryDetailView(generic.DetailView): > > model = Category > > > > from django.contrib.auth.mixins import LoginRequiredMixin > > > > class LoanedBooksByUserListView(LoginRequiredMixin,generic.ListView): > > """Generic class-based view listing books on loan to current user.""" > > model = BookInstance > > template_name ='catalog/bookinstance_list_borrowed_user.html' > > paginate_by = 10 > > > > def get_queryset(self): > > return > BookInstance.objects.filter(borrower=self.request.user).filter(status__exact='o').order_by('due_back') > > > > > On Monday, August 27, 2018 at 11:00:57 AM UTC-4, Matthew Pava wrote: > > We need to see your view code. I’m assuming now that you don’t have > category_list in your context variable that you submitted to the template. > > > > *From:* [email protected] [mailto:[email protected]] *On > Behalf Of *Jay > *Sent:* Monday, August 27, 2018 9:20 AM > *To:* Django users > *Subject:* Re: Printing model fields organized by category > > > > Thanks for the suggestions, I will change the name from Model after I can > get this working. > > > > So, I've changed the code using your help to: > > > > {% if category_list %} > > {% for category in category_list %} > > <li><strong>{{ category }}</strong></li> > > <ul> > > {% for model in category.model_set %} > > <li> > > <a href="{{ model.get_absolute_url }}"> {{ > model.model_number }}..........{{ model.description }} </a> > > </li> > > {% endfor %} > > </ul> > > {% endfor %} > > {% else %} > > <p>There is no equipment in the database</p> > > {% endif %} > > > > {% endblock %} > > > > However, this just prints "There is no equipment in the database". Am I > missing something? I will try to experiment a little more. > > > On Monday, August 27, 2018 at 9:52:56 AM UTC-4, Matthew Pava wrote: > > Hi Jay, > > Firstly, I would avoid calling a model “Model.” Maybe “Product” would be > better? It’s only because of Django’s models.Model class. That will > likely cause confusion in the future for you. > > > > You’ll want to work with the Category model primarily and use a reverse > lookup to get to the corresponding “Model” instead of working with a > model_list. The reverse lookup of category to model is model_set by > default. You can change the name if you want. > > > > {% for category in category_list %} > > <strong>{{ category }}</strong> > > <ul> > > {% for model in category.model_set %} > > <li><a href="{{ model.get_absolute_url }}">{{ model }}</a></li> > > {% endfor %} > > </ul> > > {% empty %} > > <p>There is no equipment in the database with a category.</p> > > {% endfor %} > > > > > > Check out > https://docs.djangoproject.com/en/2.1/topics/db/examples/many_to_one/ > > > > > > *From:* [email protected] [mailto:[email protected]] *On > Behalf Of *Jay > *Sent:* Monday, August 27, 2018 8:02 AM > *To:* Django users > *Subject:* Printing model fields organized by category > > > > I have a Class called "Model" that has a field called "model_numbers". I > have another class called "Category" that has a field called "category". In > the Model Class, I have a field called category that is a Foreign Key to > the field category in the Class category. > > > > [image: Screen Shot 2018-08-27 at 8.58.54 AM.png] > > > > Also, here is the html that prints the modeul_number and category fields: > > > > [image: Screen Shot 2018-08-27 at 9.01.10 AM.png] > > > > > > What the code is printing: > > > > CATEGORY 1: > > - Field 1 > > - Field 2 > > - Field 3 > > > > CATEGORY 2: > > - Field 1 > > - Field 2 > > - Field 3 > > > > What I want it to print is: > > > > CATEGORY 1: > > - Field 1 > > - Field 2 > > > > CATEGORY 2: > > - Field 3 > > > > In this way it prints out all the model numbers under their respective > category name (instead of all model numbers under every category, which is > not correct as each model number only has one category). > > > > I posted about this on stackoverflow, and received a response but I am > still confused. > <https://stackoverflow.com/questions/51882942/how-can-i-organize-a-list-of-fields-based-on-another-field> > > > > Thank you! > > -- > 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/098cc4aa-374a-4e9a-9da1-ee49bab591aa%40googlegroups.com > > <https://groups.google.com/d/msgid/django-users/098cc4aa-374a-4e9a-9da1-ee49bab591aa%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/62492e1a-1aeb-48ef-b1c1-47d3bfc77124%40googlegroups.com > > <https://groups.google.com/d/msgid/django-users/62492e1a-1aeb-48ef-b1c1-47d3bfc77124%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/4683cba0-9332-46ac-b318-bbd25b4a32f5%40googlegroups.com > > <https://groups.google.com/d/msgid/django-users/4683cba0-9332-46ac-b318-bbd25b4a32f5%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] <javascript:>. > To post to this group, send email to [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/1d1057c6-3be6-4205-8530-59946090547d%40googlegroups.com > > <https://groups.google.com/d/msgid/django-users/1d1057c6-3be6-4205-8530-59946090547d%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/720370ac-d9aa-4d04-99b5-3dd6739b5225%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.

