Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
I'm having a program when I'm trying to run my server it's a pretty simple server because I'm quite new with Django
This is the error I get: django.core.exceptions.ImproperlyConfigured: Specifying a namespace in include() without providing an app_name is not supported. Set the app_name attribute in the included module, or pass a 2-tuple containing the list of patterns and app_name instead. I tried removing the include() function but I still get the error, what should I do? Here is the code: This is the main urls.py: from django.conf.urls import include, url from django.contrib import admin urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'', include('learning_logs.urls', namespace='learning_logs')), This is the secondary: from django.conf.urls import url from . import views urlpatterns = [ # Home page url(r'^$', views.index, name='index'), ] -
NameError : name 'xxx' is not defined in plotly_dash
I am new to programming and still learning the basics of it. I am building a dashboard using plotly dash and I get error as "NameError: name 'plot_data_raw' is not defined" Below is the code: Preprocessing.py (file) def import_agg(days=100): ... ... return dff def import_pda(days=100): ... ... return dff def filter_clearcoat(dff_agg, dff_pda): ... ... return dff_agg def moving_average(dff, cols, dt=30, wsize=9, iqr=90): ... ... return dff def main(days_data=5, days_mean=30, features=['d_50', 'N']): df_agg = import_agg(days_mean) df_agg = df_agg.rename(columns={'LocalTS': 'Timestamp'}) df_agg['Timestamp'] = [x[:19] for x in df_agg['Timestamp']] df_agg['Timestamp'] = df_agg['Timestamp'].apply(pd.Timestamp) # --- import pda: ----------------------------------------------------------------------- df_pda = import_pda(days_mean) df_pda = df_pda.rename(columns={'ZeitErw': 'Timestamp'}) # --- filter droplet number: ------------------------------------------------------------ df_agg = df_agg.loc[df_agg['N']!=0] # --- filter clearcoat type: ------------------------------------------------------------ df_agg = filter_clearcoat(df_agg, df_pda) # --- smoothe: -------------------------------------------------------------------------- df_agg_sm = moving_average(df_agg, features) # --- prepare output (plot data): ------------------------------------------------------- is_in_range = df_agg['Timestamp'] >= (pd.Timestamp.now()-pd.Timedelta(days_data, 'days')) plot_data_raw = df_agg.loc[is_in_range, ['Timestamp']+features].copy() plot_data_smoothed = df_agg_sm.loc[is_in_range, ['Timestamp']+features].copy() # --- prepare output (percentiles & mean): ---------------------------------------------- plot_parameters = pd.DataFrame(columns=features) plot_parameters.loc['pct75'] = [df_agg[x].quantile(q=0.75) for x in features] plot_parameters.loc['mean'] = [df_agg[x].mean() for x in features] plot_parameters.loc['pct25'] = [df_agg[x].quantile(q=0.25) for x in features] # --- output: --------------------------------------------------------------------------- return plot_data_raw, plot_data_smoothed, plot_parameters I want to plot this data on a graph from another file. … -
How to filter a queryset in django by excluding with two parameters
I have a view in django that looks as follows: class ExploreListingView(generics.ListAPIView): serializer_class = ListingSerializer permission_classes = [permissions.IsAuthenticated] def get_queryset(self): return Listing.objects.exclude(user=self.request.user, claimed=True) The result I expect is to filter out any listings that are assigned with the current user and are claimed, however the filter doesn't work, but when I remove either parameter it works just fine. How do I exclude it so I can use more than one parameter. -
How can i call the fields of a foreignkey in the template html django
how can i call the movie_details and actor fields or variables from the MovieDetail class in the model.py to my html template. Thank you very much i am new to django will be loving solutions from here. Models.py from django.db import models from datetime import datetime # Create your models here. class MoviePosters(models.Model): image = models.ImageField(upload_to = "pics") Title = models.CharField(max_length=50) Description = models.CharField(max_length = 150) class MovieSection(models.Model): image_side = models.ImageField(upload_to = "pics") title_side = models.CharField(max_length=50) movie_link = models.CharField(max_length=20) class meta: verbose_name_plural = "Section" def __str__(self): return self.title_side class MovieDetails(models.Model): movie_section = models.ForeignKey(MovieSection, on_delete= models.CASCADE) movie_details = models.CharField(max_length= 200) actors = models.CharField(max_length= 200) class meta: verbose_name_plural = "movie_details" def __str__(self): return self.movie_details Views.py from django.shortcuts import render from django.http import Http404 from django.http import HttpResponse from .models import MoviePosters, MovieSection,Ticket, MovieDetails def single_link(request, single_link): movie_details = MovieSection.objects.get(pk=single_link) return render(request, "reviewmovie.html", {"part_ones": movie_details}) -
TypeError: Abstract base class containing model fields not permitted for proxy model 'TokenProxy'
Can anyone help me with this error. I got this error when I was adding new app in my project and tried to run python manage.py makemigrations After that when I couldn't solve it then I decided to start from 0. I deleted all migration file from all apps except init.py Then created a new postgresql server. but when I run python manage.py makemigrations This error is still there. (backend-T2FJqQ31) C:\Users\Rahul\Desktop\reactblog\backend>python manage.py makemigrations Traceback (most recent call last): File "manage.py", line 22, in <module> main() File "manage.py", line 18, in main execute_from_command_line(sys.argv) File "C:\Users\noob\.virtualenvs\backend-T2FJqQ31\lib\site-packages\django\core\management \__init__.py", line 401, in execute_from_command_line utility.execute() File "C:\Users\noob\.virtualenvs\backend-T2FJqQ31\lib\site-packages\django\core\management\__init__.py", line 395, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "C:\Users\noob\.virtualenvs\backend-T2FJqQ31\lib\site-packages\django\core\management\base.py", line 330, in run_from_argv self.execute(*args, **cmd_options) File "C:\Users\noob\.virtualenvs\backend-T2FJqQ31\lib\site-packages\django\core\management\base.py", line 368, in execute self.check() File "C:\Users\noob\.virtualenvs\backend-T2FJqQ31\lib\site-packages\django\core\management\base.py", line 392, in check all_issues = checks.run_checks( File "C:\Users\noob\.virtualenvs\backend-T2FJqQ31\lib\site-packages\django\core\checks\registry.py", line 70, in run_checks new_errors = check(app_configs=app_configs, databases=databases) File "C:\Users\noob\.virtualenvs\backend-T2FJqQ31\lib\site-packages\django\core\checks\urls.py", line 13, in check_url_config return check_resolver(resolver) File "C:\Users\noob\.virtualenvs\backend-T2FJqQ31\lib\site-packages\django\core\checks\urls.py", line 23, in check_resolver return check_method() File "C:\Users\noob\.virtualenvs\backend-T2FJqQ31\lib\site-packages\django\urls\resolvers.py", line 408, in check for pattern in self.url_patterns: File "C:\Users\noob\.virtualenvs\backend-T2FJqQ31\lib\site-packages\django\utils\functional.py", line 48, in __get__ res = instance.__dict__[self.name] = self.func(instance) File "C:\Users\noob\.virtualenvs\backend-T2FJqQ31\lib\site-packages\django\urls\resolvers.py", line 589, in url_patterns patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module) File "C:\Users\noob\.virtualenvs\backend-T2FJqQ31\lib\site-packages\django\utils\functional.py", line 48, in __get__ res = instance.__dict__[self.name] = self.func(instance) … -
Add csv data uploaded from user file to django models
Sorry if it's a silly question, but I can't find a simple/up-to-date way of populating Django models from a .csv file updated on the frontend (React) by the user. I manage to send the uploaded file from react frontend to the backend using axios, I can catch the file on the backend, but I dont know the proper way to populate the model with the csv data... Thanks!! App.js // frontend/src/App.js import React, { Component } from "react"; import axios from "axios"; import { Button, FormGroup, Form } from "react-bootstrap"; class App extends Component { handleFile = (event) => { event.preventDefault(); const fileToUpload = event.target.files[0]; this.setState({ fileToUpload: fileToUpload, }); }; handleSubmitData = (event) => { event.preventDefault(); let formData = new FormData(); formData.append("file", this.state.fileToUpload); axios .post("data/", formData) .then((response) => { console.log(response); }) .catch((error) => { console.log(error.response); }); }; render() { return ( <main className="content"> <h1 className="text-white text-uppercase text-center my-4"> Price comparison </h1> <form onSubmit={this.handleSubmitData}> <FormGroup> <Form.Label>Upload file</Form.Label> <Form.Control type="file" onChange={this.handleFile}></Form.Control> </FormGroup> <Button block bssize="large" type="submit"> Submit </Button> </form> </main> ); } } export default App; models.py from django.db import models class Data(models.Model): city = models.CharField(max_length=200, null=True) wheel_type = models.CharField(max_length=200, null=True) order_status = models.CharField(max_length=200, null=True) order_ID = models.IntegerField(null=True) client_ID = models.IntegerField(null=True) placed_time … -
Django, smart-select, chained select doesn-t work from html
I try to use chained select (smart-select), it works from the admin panel, but doesn't work from template (html). settings: JQUERY_URL = False USE_JQUERY_DJANGO = True html: <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>{% block title%}{% endblock %}</title> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"> <link rel="stylesheet" href="{% static 'main/css/main.css'%}"> <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.2/css/all.css"> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script src="{% static 'smart-selects/admin/js/bindfields.js' %}"></script> <script src="{% static 'smart-selects/admin/js/chainedfk.js' %}"></script> <script src="{% static 'smart-selects/admin/js/chainedm2m.js' %}"></script> </head> class Tasks(models.Model): type = models.ForeignKey(TypeServices,on_delete=models.CASCADE,default='0') site = ChainedForeignKey( Services, chained_field="type", chained_model_field="type", show_all=False, sort=True) -
Django deployment with required temporary model data
First of all, I am very new to deployment. I have built a new newspaper project using Django in my windows machine. It runs fine in localhost. Now I want to deploy it in pythonanywhere. I am using the default db.sqlite3 as my database. But in production, I am going to use MySql, (for which they have easy settings and support) Problem: As a newspaper, my website needs a lot of specialized filtering. To find a single value I had to, sometimes, use list indexing on filtered data like-(inside get context data): context['main_lead_news']=SingleNews.objects.filter( published_date__lte=timezone.now(), news_extras__icontains='main_lead_news').order_by('-published_date')[0] As you can see if 'filter' does not find anything, it will raise an error as- List index out of range. Overall, my code will break without any temporary model data( currently, though most of them are lorem ipsum.) I have populated them before my code was complete. now, how can I deploy my project, as I may not have a chance to populate them online again because of those errors.also my debug will be false, it will be near impossible to run my code without finding errors! I have two (half!) ideas- 1.somehow upload the sqlite3 database when deploying, then after configuring MySQL, transfer … -
Django use only one column of Model1 as a foreign key in second model
I have two Django Models (Events and GMSEvents). I want to use the eventAcronym of Events model as a foreign key in GMSEvents. I tried as below, but I get the error AssertionError: ForeignKey(<django.db.models.query_utils.DeferredAttribute object at 0x000002032DA1E8C8>) is invalid. First parameter to ForeignKey must be either a model, a model name, or the string 'self' Models class Events(models.Model): eventAcronym = models.CharField(max_length=4, blank=False, null=False) eventName = models.CharField(max_length=30, blank=False, null=False) def __str__(self): return f"{self.eventAcronym} - {self.eventName}" class GMSEvents(models.Model): gateNo = models.IntegerField(blank=False, null=False) aircraftName = models.CharField(max_length=15, blank=False, null=False) detectEvent = models.ForeignKey(Events.eventAcronym, on_delete=models.CASCADE) timeStamp = models.DateTimeField() -
How to add Token to a model that extends the User Model in Django Rest Framework?
I have the following to create a user and add a Token to it: User = get_user_model() class UserSerializer(serializers.ModelSerializer): class Meta: model = User fields = ('id', 'username', 'password', 'first_name', 'last_name', 'email') extra_kwargs = {'passwords': {'write_only': True, 'required': True}} def create(self, validated_data): user = User.objects.create_user(**validated_data) token = Token.objects.create(user=user) return user I would like to be able to do the same thing for a Player: class PlayerSerializer(serializers.ModelSerializer): class Meta: model = Player fields = '__all__' def create(self, validated_data): # what to do here? How to create a new token for 'Player'? The Player model extends the 'MyUser' model: class MyUser(AbstractUser): pass class Player(MyUser): national_id = models.CharField(max_length=10) def save(self, *args, **kwargs): self.username = self.email return super().save(*args, **kwargs) -
How to fetch and count duplicate objects in (merged) querysets? [Django]
I am trying to find all duplicates between the current and previous project(s) and count them in order to show the number of the duplicates (or in my case the "returning" visitors from a previous project). The following code works as intended partially, but the issue here is that it will return the correct number of "returning visitors" only if there are two projects available, and it will mess up the things if there is a next project added. For example: The first project have 5 unique visitors. In the second project there are 5 visitors as well, but 3 of them are returning from the first project. At this point the app will show 3 returning visitors which is correct. But if I add the third project, that will have 5 new visitors but only 1 of them is returning from both previous projects and the remaining 4 are new visitors - it will return result as if there are 3 returning visitors again. In this example, my goal would be to show that for the third project, there is only 1 returning visitor from the previous projects (any of the previous or both). So far I have this … -
How can I make a reservation with Django rest framework?
I'm coding a rest API with Django rest. I have a Room model I want to users can reserve the rooms. the rooms have price, reserve days. I created two another models named "order" and "order-item" they are linked together with Stacked Inline in admin.py . with these two models I want to create a order and with a total price function I want to calculate the total price of the reservation ("room price" * "reserve days") . I used Model Serializer for serializing my models. I can't write views.py please help me write my view. from django.contrib.auth.models import User from django.db import models from eghamat.models import Room class Order(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='orders') created = models.DateTimeField(auto_now_add=True) updated = models.DateTimeField(auto_now=True) paid = models.BooleanField(default=False) class Meta: ordering = ('-created',) def __str__(self): return f'{self.user} - {str(self.id)}' def get_total_price(self): total = sum(item.get_cost() for item in self.items.all()) return total class OrderItem(models.Model): order = models.ForeignKey(Order, on_delete=models.CASCADE, related_name='items') product = models.ForeignKey(Room, on_delete=models.CASCADE, related_name='order_items') price = models.IntegerField() quantity = models.PositiveSmallIntegerField(default=1) def __str__(self): return str(self.id) def get_cost(self): return self.price * self.quantity -
Mysql is not connecting Docker
I am trying to connect mysql docker container on live server but Its not working My docker-compose file is db: image: mysql:5.7 restart: always env_file: - ./todolist/todolist/.env volumes: - ./mysql-data:/var/lib/mysql ports: - "3302:3306" and my env file is like MYSQL_PORT=3306 MYSQL_DATABASE=mydb MYSQL_USER=root MYSQL_PASSWORD=root MYSQL_ROOT_PASSWORD=root and my Django settings.py is DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': mydb, 'USER': root, 'PASSWORD': root, 'HOST': db, 'PORT': 3306, } } and error log on gitlab CI is Creating test database for alias 'default'... Traceback (most recent call last): File "/usr/local/lib/python3.6/site-packages/django/db/backends/base/base.py", line 216, in ensure_connection self.connect() File "/usr/local/lib/python3.6/site-packages/django/db/backends/base/base.py", line 194, in connect self.connection = self.get_new_connection(conn_params) File "/usr/local/lib/python3.6/site-packages/django/db/backends/mysql/base.py", line 227, in get_new_connection return Database.connect(**conn_params) File "/usr/local/lib/python3.6/site-packages/MySQLdb/__init__.py", line 130, in Connect return Connection(*args, **kwargs) File "/usr/local/lib/python3.6/site-packages/MySQLdb/connections.py", line 185, in __init__ super().__init__(*args, **kwargs2) MySQLdb._exceptions.OperationalError: (2002, "Can't connect to MySQL server on 'db' (115)") -
how to update a table field after BooleanField is clicked
lets think you have a table like this MODELS.PY class test(models.Model): name = models.CharField(max_length=20) pluspoints = models.BooleanField(default=False) minuspoints = models.BooleanField(default=False) total_points = models.IntegerField() def __str__(self): return str(self.name) points.html <form id="points_form"> {% csrf_token %} <div class="row"> <div class="col-3"> {{ form.name|as_crispy_field }} </div> <div class="col-3"> {{ form.pluspoints|as_crispy_field }} </div> <div class="col-3"> {{ form.minuspoints|as_crispy_field }} </div> </div> <br> <input class="btn btn-outline-primary" type="submit" name="submit" value="give the points" /> </form> now, I want to update the "total_points" -1 when I click on minuspoints and +1 when I click on pluspoints. Is this possible? or what could I do else. -
How to send a CSRF token from Django to Vue
My web app is divided into two directories, front-end and back-end, and they hosted on a different domains, because the domains are different, I can't get a CSRF token from cookie file, for Vue to send a post request. How can I get this token in that case? -
DRF: Source reference without re-define field
I'd like to change field name in DRF ModelSerializer without the need to re-define the field I am pointing to. According a post on SO (ref), one can re-name a field name within the serializer by using source, such as: location = serializers.CharField(source='alternate_name') However, this method takes away the benefits of using a ModelSerializer as you essentially need to re-write the field completely, which is a pain when you have many fields. in my case, I have a model field such as: product_uid = models.UUIDField(primary_key=False, unique=True, default=uuid.uuid4, editable=False) In the API, I'd like the field to be called 'uid'. If I would do the following: uid = serializers.UUIDField(source=product_uid) would result in editable=True Is there a way to reference to a ModelField and keep its definition intact according the Model (as you normally do when using serializers.ModelSerializer) but only change the name, e.g. something like: uid = serializers.ModelField(source=product_uid) ? -
why signal triggered in wrong time?
I'm creating a signal which creates a profile for the user considering the group they are in. For example if they user is in TEACHER group the teacher_profile would be created for it. The problem is that the signal triggered before the group of user has been set and gives me the error 'NoneType' object has no attribute 'name'. #views.py def register_page(request): if request.POST: password = request.POST['password'] repassword = request.POST['repassword'] username = request.POST['username'] GROUP = request.POST['group'] if password == repassword: #creating user user = User.objects.create(is_superuser=False, username=username) user.groups.set([Group.objects.get(name=GROUP), ]) user.set_password(password) user.save() #authenticating user user = authenticate(username=username, password=password) if user: login(request, user) return redirect('/esadra/user/dashboard/') else: messages.error(request, 'پسورد ها مطابقت ندارند') messages.error(request, 'فرم را درست پر کنید') #models.py @receiver(post_save, sender=User) def user_profile_creator(sender, instance, created, *args, **kwargs): if created: if instance.groups.first().name == 'TEACHER': profile = teacher.objects.create(user=instance) elif instance.groups.objects.first().name == 'Student': profile = student.objects.create(user=instance) I have tried `m2m_changed` that made other problems for `set_password` , it made the user instance `None type` because it should be saved to trigger the `m2m_changed` signal. -
How to access websocket send_message from django view
I have successfully established a dummy websocket where the client and the server have a handshake. when the userA logs-in the JS whenLoadingPage takes care of the connection and receives a message from django that the connection was established. My question: say I have a background task and I wish to notify the user that the task is completed at the end. How can send a notification from the view? on the JS: function whenLoadingPage() { console.log("WS TEST...") var loc = window.location; var wsStart = 'ws://'; var endpoint = wsStart + loc.host +'/websocket/dummy_consumer/'; socket = new WebSocket(endpoint); socket.onopen = function() { message = {"command":"hello world"} var messageJSON = JSON.stringify(message); socket.send(messageJSON); } socket.onmessage = function(e) { try{ console.log("got it..."); console.log(event.data); }catch(err) { console.log(event) } } } the consumer on django: class DummyConsumer(AsyncConsumer): async def websocket_connect(self, event): print ("dummy consumer initializing...") await self.send({ "type": "websocket.accept", }) async def websocket_receive(self, event): message = event['text'] print ("I received a message from JS:---->"+message) print ("working on my long request...") await asyncio.sleep(0.1) await self.send({ 'type': 'websocket.send', 'text': 'heres your data', }) async def send_message(self, event): await self.send({ "type": "websocket.send", 'text': 'this comes from the view!' }) async def websocket_disconnect(self, event): print("websocket_disconnect ", event) //result on django: … -
How to login using http request for Django
I am writing a backend for an app. Trying to send something like http://127.0.0.1:8000/httplogin/username/password/ to authenticate said user and login as that user with following view function: def httplogin(request, username, pw): username=str(username) pw=str(pw) #both string for username and pw are captured successfully print(request.user.username) user=authenticate(username=username, password=pw) print(user) login(request,user) return HttpResponse("Welcome back "+request.user.username) However, all I keep getting back is request still logged in as Anonymous user or the user previously logged. How do I switch away from Anonymous user? -
Avoid repeated entries from same user
I'm trying to build an auction site. I've set up my placebid view and I'm quite happy with how it functions but the problem is the same user is able to bid on the same listing multiple times. This is okay but instead of it being stored in the database as several separate bids all by the same user, I want the initial bid to be updated or initial bid removed and new bid created. I did try UniqueConstraint and added to my Bid model (fields: bidder and bid_input) but it made no difference plus when I deleted it from my Bid model and makemigrations there were no changes detected so it seems the database was dismissing it anyway. I tried to do a .filter().exists() check before saving the form in my placebid view and now the form lets me place an initial bid but when I do a second bid it returns a Page Not Found error: Page not found (404) Request Method: POST Request URL: http://127.0.0.1:8000/listing/3/bid Raised by: auctions.views.placebid No Bid matches the given query. This is my functional views.py with no form validation checking: def placebid(request, id): listing_bid = get_object_or_404(Listing, id=id) highest_bid = Bid.objects.filter(bid_item_id=id).aggregate(Max('bid_input'))['bid_input__max'] or Decimal('0') currentHighest … -
How can i create global django prefix?
How I can create URLs like this: main url: ecommerce.com with prefix: ny.ecommerce.com moscow.ecommer.com And then I want to use this .ecommerce.com in functions, how I can retrieve it? -
how to make summation of two or more similar objects and prevent creating the new one if its exists ? django
i try to make a system for a storage , sometimes it happen two similar objects are entry in two different time , i have to summation the quantity of both and looks like one object instead of two different object for example i've entry this data one week ago name=mouse , qnt=20 , price=20 and today i add a new collection of mouse (the same mouse as before) name=mouse , qnt=10 , price=15 i have to whenever i face similar problem it automatically summation quantities =(30) and price = ((20+15)/2) instead of creating a new object to the second mouse object is it possible ? or is there anything else for similar issues ?! this is my model this is the Products model class Products(models.Model): name = models.CharField(max_length=20,unique=True) qnt = models.IntegerField() price = models.DecimalField(max_digits=20,decimal_places=3,null=True,blank=True) def __str__(self): return self.name this is the Collections model class Collections(models.Model): name = models.ForeignKey(Products, on_delete=models.CASCADE) qnt = models.IntegerField() price = models.DecimalField(max_digits=20,decimal_places=3,null=True,blank=True) i dont need to create new object to the same product as exist in collection , i have to just summation the quantities ?! is it possible ?thanks -
How can I determine if a string in Django model list field contains a substring?
How do I write a filter like this: MyObject.objects.filter(some_string__icontains="match") for each string in a list field like this: MyObject.objects.filter(some_list__icontains="match") # Not working So if some_list in a MyObject looks like this: some_list = ["item1", "item2", "item3match"] the query above should find it -
Wagtail - show latest 3 posts but filter the 3 posts when in the latest post selected
bit hard to explain this one but I will give it my best. I am trying to develop a wagtail website and all is looking fine, but now I have come across a problem. In my side panel to the right I have the latest 3 posts published. This always shows the latest 3 posts which is great for further reading but when I select one of those posts in the side panel, the post that I have selected is still visible in the side panel. So basically I am looking for some kind of restructuring to my models to say if post selected, in side panel show the next latest post applicable instead. a visual representation is thus: So my code is as follows: template: <div class="col-2__sm"> <div class="card"> {% for child in page.get_recent_blogs %} <div class="col-1 card__block"> <div class="card__content news-blocks"> <a class="blog__recent-posts" href="{{ child.url }}"> <div class="image"> {% image child.image fill-850x450-c100 %} </div> <h3>{{ child.title }}</h3> <p>{{ child.introduction|truncatewords:15 }}</p> <span>Read More</span> </a> </div> </div> {% endfor %} </div> </div> In my model I have this: def get_recent_blogs(self): max_count = 3 return BlogPage.objects.all().order_by( '-first_published_at')[:max_count] # add this to custom context def get_context(self, request): context = super(BlogPage, self).get_context(request) context['blogs'] = … -
Django - OR filter on two fields, one of which is in related table
I have two models: Post and User (the standard Django User model - thus not shown below) class Post(models.Model): # post_file = CloudinaryField(resource_type='video',blank=True) post_file = models.CharField(max_length=500,blank=False,default="") user = models.ForeignKey(User, on_delete=models.CASCADE) description = models.CharField(max_length=150,blank=False,default="") approved = models.BooleanField(default=False) active = models.BooleanField(default=False) I want to filter Posts where either the post description or the User.user_name contains a search string. e.g. search_crit ='erch' Tried many approaches but the solution keeps evading me. from django.db.models import Q active_post_views = Post.objects.filter(active=True, approved=True).select_related('user') matched_active_post_views = active_post_views.filter( Q(description__contains=search_crit) | Q(username__contains=search_crit) )