Django-views

Related

How to split views.py to several smaller files in Django

When your views.py is too large, it becomes much more difficult to manage your code. So you might want to split views.py into several subviews, each of which contains a single sort of views.To split views.py, you could follow the following steps. Your original views.py might look like this:import ... def view1(request): pass def view2(request): passNow, create a new folder subviews aside with views.py , i.e. /Django/mysite/MyAPI/subviews. Next, create __init__.py, viewsa.py, and viewsb.py in the folder subviews to form the following folder/file structure :subviews/ __init__.py subviews1.py subviews2.pysubviews1.py :from .views import * def view1(request): passsubviews2.py :from .views import * def view2(request): pass__init__.py :from subviews1 import * from subviews2 import *Then this would work the same as a single views.py file. Don't forget to change the urls.py file before you reloading Django.
2024-05-01 14:11:30

django object has no attribute 'count'

QuestionI am learning django / python and I am stuck on an issue.I have a view: create_document.py in which I want to count the number of name details from a models class: NameDetails.I cannot get the correct syntax!Here is my models.py code:class NameDetails(FillableModelWithLanguageVersion): user = models.ForeignKey(User) name_details_prefix_title = models.CharField(null=True, blank=True, max_length=25) name_details_first_name = models.CharField(null=False, blank=False, max_length=50) name_details_middle_name = models.CharField(null=True, blank=True, max_length=100) ....Here is my create_document.py code in which I have a django wizard. I want to make sure the user has more than 1 name before they can create a document:from app_name.core.models import NameDetails class CreateDocumentWizard(SessionWizardView): template_name = 'documents/document_create.html' form_list = [ core_forms.CreateDocumentWizardForm01, core_forms.CreateDocumentWizardForm02, core_forms.CreateDocumentWizardForm03, core_forms.CreateDocumentWizardForm04, ] def get_form_kwargs(self, step=None): kwargs = super(CreateDocumentWizard, self).get_form_kwargs(step) kwargs.setdefault('user', self.request.user) return kwargs def get_context_data(self, form, **kwargs): name_details_count = NameDetails(user=self.request.user).count() if name_details_count < 1: return redirect(settings.MENU_DETAIL_LINK_NAME_DETAILS)When I use the line to determine the count of NameDetails of the user: name_details_count = NameDetails(user=self.request.user).count(), I get the following error:NameDetails' object has no attribute 'count'I have tried many permutations, but I am stuck.Answer 1It should be like that in your get_context_data function:name_details_count = NameDetails.objects.filter(user=self.request.user).count()Answer 2At the moment you're creating a brand new NameDetails instance with request.user as the user. Instead, you should query the database for existing NameDetails for the current user, and count them. You can query the database through NameDetails.objects:name_details_count = NameDetails.objects.filter(user=self.request.user).count()The content is from StackOverflow which is translated and used in accordance with the CCBY-SA 4.0 license agreement. Original link: django object has no attribute 'count'
2024-08-21 17:45:15
Get connected with us on social networks! Twitter

©2024 Guangzhou Sinephony Technology Co., Ltd All Rights Reserved