No problem , you can catch this exception in your views.py if you want .. On Wed, 25 Mar 2020, 12:46 pm omid jahadi, <[email protected]> wrote:
> It doesn't work ... Actually, ManyToManyField is not null ... I get error > when i search a keyword that doesn't match with any user! ... For example, > first_name is 'Omid', when i search 'o' or 'm', search works fine and > return 'Omid', but, when i search 'k', i get PageNotFound error > > On Wednesday, March 25, 2020 at 7:00:00 AM UTC+4:30, Motaz Hejaze wrote: >> >> Add null=True to manytomany field >> >> >> On Wed, 25 Mar 2020, 2:02 am omid jahadi, <[email protected]> wrote: >> >>> Hello everybody! I want to search in a ManyToManyField in the >>> DetailView. It works fine if a user with the same query exist, but if there >>> isn't a user, i get page not found error. >>> >>> models.py: >>> >>> class agents(models.Model): >>> agent_type = models.ForeignKey(types, on_delete=models.SET_NULL, >>> blank=True, null=True) >>> name = models.CharField(max_length=100) >>> users = models.ManyToManyField(user_models.users, through='user_agent') >>> >>> views.py: >>> >>> class AgentDetailView(LoginRequiredMixin, generic.DetailView): >>> model = models.agents >>> template_name = 'agent/agent_detail.html' >>> >>> def get_queryset(self): >>> query = self.request.GET.get('q') >>> if query: >>> return >>> models.agents.objects.filter(Q(users__user__first_name__contains=query) >>> | >>> Q(users__user__last_name__contains=query) >>> | >>> Q(users__id_number__contains=query) >>> | >>> Q(users__mobile__contains=query)) >>> else: >>> return models.agents.objects.all() >>> >>> agent_detail.html: >>> >>> <h1>name: {{ agents.name }}</h1> >>> <form method="GET" action="" id="searchform"> >>> <input class="searchfield" id="searchbox" name="q" type="text" >>> placeholder="Search..."/> >>> <button name="search" type="submit" value="{{ request.GET.q >>> }}">Search</button> >>> </form> >>> {% if agents.users %} >>> <p><strong>Users:</strong> >>> <br> >>> {% for users in agents.users.all %} >>> <li>{{ users }}</li> >>> <hr> >>> {% endfor %} >>> </p> >>> {% else %} >>> <p>There are no user for this agent in database.</p> >>> {% endif %} >>> >>> -- >>> 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 view this discussion on the web visit >>> https://groups.google.com/d/msgid/django-users/54061fa4-2412-424a-8887-916dcc10c051%40googlegroups.com >>> <https://groups.google.com/d/msgid/django-users/54061fa4-2412-424a-8887-916dcc10c051%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> >> -- > 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 view this discussion on the web visit > https://groups.google.com/d/msgid/django-users/703c8b77-9775-4895-b5cd-a701f7e2d69d%40googlegroups.com > <https://groups.google.com/d/msgid/django-users/703c8b77-9775-4895-b5cd-a701f7e2d69d%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- 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 view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CAHV4E-fE6hwN75O41WGKnZvqPR%3D6A0ZSiWcwSnyOtG8yP-3q0A%40mail.gmail.com.

