Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
How to configure LDAP authentication backend in Django?
I'm trying to configure LDAP authentication backend in Django, but it doesn't work for me. I followed the steps mentioned on the docs of django-auth-ldap library. My LDAP server is on Windows Server 2012 and I'm using two VMs. The first is my Windows Server 2012 and the second is a machine runing Ubuntu 20.04. I've installed all libraries on my Ubuntu machine, but Django can't loggin any user. I'm using Django 3.2.4 in this project. import ldap from django_auth_ldap.config import LDAPSearch, LDAPGroupQuery, GroupOfNamesType, PosixGroupType AUTH_LDAP_SERVER_URI = 'ldap://10.0.0.10' AUTH_LDAP_BIND_DN = 'cn=bind,dc=tech,dc=local' AUTH_LDAP_BIND_PASSWORD = '123@mudar' AUTH_LDAP_USER_SEARCH = LDAPSearch('dc=tech,dc=local', ldap.SCOPE_SUBTREE,'uid=%(user)s') AUTH_LDAP_GROUP_SEARCH = LDAPSearch('dc=tech,dc=local', ldap.SCOPE_SUBTREE,'(objectClass=top)') AUTH_LDAP_GROUP_TYPE = PosixGroupType(name_attr='cn') AUTH_LDAP_MIRROR_GROUPS = True AUTH_LDAP_REQUIRE_GROUP = "cn=enabled,ou=groups,dc=tech,dc=local" AUTH_LDAP_USER_ATTR_MAP = { 'first_name': 'givenName', 'last_name': 'sn', 'email': 'mail', 'username': 'uid', 'password': 'userPassword' } AUTH_LDAP_PROFILE_ATTR_MAP = { 'home_directory': 'homeDirectory' } AUTH_LDAP_USER_FLAGS_BY_GROUP = { 'is_active': 'cn=active,ou=groups,dc=tech,dc=local', 'is_staff': 'cn=staff,ou=groups,dc=tech,dc=local', 'is_superuser': 'cn=superuser,ou=groups,dc=tech,dc=local' } AUTH_LDAP_ALWAYS_UPDATE_USER = True AUTH_LDAP_FIND_GROUP_PERMS = True AUTH_LDAP_CACHE_TIMEOUT = 3600 AUTHENTICATION_BACKENDS = { 'django_auth_ldap.backend.LDAPBackend', 'django.contrib.auth.backends.Modelbackend' } -
Django - paginate_by doesn't work correctly
can we help, why pagination doesn't work in this case? my search in controller: class PostSearchView(ListView): paginate_by = 5 model = Post template_name = 'blog/home.html' context_object_name = 'posts' ordering = ['-date_posted'] def get_context_data(self): inp_value = self.request.GET.get('search', '') context = super().get_context_data() objects = Post.objects.filter(title__icontains=inp_value).order_by('-date_posted') context['posts'] = objects context['inp_value'] = inp_value return context my form in view <form class="form-inline" method='GET' action="{% url 'blog-search' %}"> <input class="form-control mr-sm-2" type='text' name='search' value="{{ inp_value }}"> <button class="btn btn-outline-success my-2 my-sm-0" id="search_submit" type="Search" >Search</button> </form> i tried with get_queryset method, but when i push on second page button request results None and results all post which do not match the search query, now i use get_context_data, to return input search value again in form but pagination in this case doesn't work correctly def get_queryset(self): search_query = self.request.GET.get('search', '') return Post.objects.filter(title__icontains=search_query).order_by('-date_posted') -
This is the error i am getting while runnig this file
PS C:\Users\STECH\Documents\pro\env_myclub\project> python manage.py runserver Watching for file changes with StatReloader Performing system checks... Exception in thread django-main-thread: Traceback (most recent call last): File "C:\Users\STECH\AppData\Local\Programs\Python\Python38\lib\threading.py", line 932, in _bootstrap_inner self.run() File "C:\Users\STECH\AppData\Local\Programs\Python\Python38\lib\threading.py", line 870, in run self._target(*self._args, **self._kwargs) File "C:\Users\STECH\AppData\Local\Programs\Python\Python38\lib\site-packages\django\utils\autorel -
How to retrieve value from one class to another in Django
I have created a context in a TemplateView class, and I want to pass it into my FormView class to be rendered in my ModelForm, I have tried this way but it's showing an error, and since I'm new to Django I couldn't figure out how to do it. This is the FormView class that I want to pass the context value I got from TemplateView class: class CreatePatientPrescriptionFormView(FormView): template_name = 'MedCareApp/patientPrescription-form.html' def get_queryset(self): return Prescription.objects.get(id=self.kwargs.get('pk')) def get_context_data(self): return CategoryMedicinesTemplateView.get_context_data() form_class = PatientPrescriptionForm(medicine_choices=get_context_data()) def get_success_url(self): return '/' This is the TemplateView class that I want to pass its context value to the FormView class: class CategoryMedicinesTemplateView(TemplateView): template_name = 'MedCareApp/category_choices.html' def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) random_user = User.objects.get(id=1) category_code = kwargs['category_code'] favMed = Medicine.objects.filter( favoritemedicine__favorite__user=random_user, category=category_code) favMedOptions = [] for med in favMed: option_name = "{} - {} - {} {} - {}".format( med.EN_name, med.EN_brand, med.dose, med.EN_doseUnit, med.EN_formula) favMedOptions.append((med.id, option_name)) allMed = Medicine.objects.filter(category=category_code) allMedOptions = [] for med in allMed: option_name = "{} - {} - {} {} - {}".format( med.EN_name, med.EN_brand, med.dose, med.EN_doseUnit, med.EN_formula) allMedOptions.append((med.id, option_name)) medicine_choices = ( ('Favorite Medicines', favMedOptions), ('Other Medicines', allMedOptions) ) context['medicines'] = medicine_choices return context -
how can os.listdir() fail in script but work in interactive interpreter when used on the same path?
During execution of django's manage.py migrate i get the error NotADirectoryError: [WinError 267] The directory name is invalid: followed by the correct path. When i Copy-Paste that path into an os.listdir call inside a python interactive session, it works perfectly fine. Background: I'm currently experimenting with django and basically following the tutorial (with minor changes like different names and such). I created a Project and App, checked/adjusted my settings, added the app to INSTALLED_APPS, created a model, ran "manage.py makemigrations" (and reviewed the result of "manage.py sqlmigrate ..." which worked) But then I tried to apply the changes by executing "manage.py migrate" which fails. The Path points to a mounted network share and is accessible normally via explorer, cmd/powershell or interactive python sessions. Console Output is: X:\django\Heizungsprotokoll>manage migrate Operations to perform: Apply all migrations: admin, auth, contenttypes, sessions Running migrations: No migrations to apply. Traceback (most recent call last): File "X:\django\Heizungsprotokoll\manage.py", line 22, in <module> main() File "X:\django\Heizungsprotokoll\manage.py", line 18, in main execute_from_command_line(sys.argv) File "C:\Programs\Python39\lib\site-packages\django\core\management\__init__.py", line 419, in execute_from_command_line utility.execute() File "C:\Programs\Python39\lib\site-packages\django\core\management\__init__.py", line 413, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "C:\Programs\Python39\lib\site-packages\django\core\management\base.py", line 354, in run_from_argv self.execute(*args, **cmd_options) File "C:\Programs\Python39\lib\site-packages\django\core\management\base.py", line 398, in execute output = self.handle(*args, **options) File "C:\Programs\Python39\lib\site-packages\django\core\management\base.py", line 89, in … -
Json Django form and Storing key/value pairs?
I am having a bit of trouble with a custom Json form that I built, and how to iterate to store values from the form. I went with a json form, because down the road the form will be completely customizable (Legends/Labels and all) I have a simple model that stores the json form in a JSONField class House(models.Model): form = JSONField(default=dict) The form gets loaded from a json file "house_form.json" looking like... { "inside": [ { "field": "How many bedrooms?", "value": "" }, { "field": "How many floors?", "value": "" } ], "outside": [ { "field": "Pool?", "value": "" }, { "field": "Shed?", "value": "" } ] } form template looks like... <form method="post""> {% csrf_token %} {% for key, value in form_fields.items %} <div class="col-xs-12"> <div class="panel panel-primary"> <div class="panel-heading"> <h3 class="panel-title"><i class="fa fa-fw fa-reorder"></i>{{key}}</h3> <div class="actions pull-right"> </div> </div> <div class="panel-body" class="panel-collapse collapse in"> {% csrf_token %} {% for val in value %} <div class="col-sm-6"><i class="fa fa-fw fa-reorder"></i><label name="{{ val.field }}">{{ val.field }} <input type="hidden" name="{{val.label}}" /></label></div> <div class="col-sm-6"> <div class="form-group"> <input type="text" name="value" class="form-control" value="{{ val.value }}"> </div> </div> {% endfor %} <div> </div> </div> </div> </div> {% endfor %} <button type="submit" class="btn btn-danger">Save</button> </form> My … -
Comparing a CharField to a list of strings in django
Hello im trying to compare the value of a Charfield to a list of strings. The goal is to run an "if" statement to figure out which list the value of the Charfield matches. As far as i could figure from the internet is seems like the problem is that Charfield is not a string and thus the values don't match. So if anyone knows how to fix that, that would be cool! My models.py: from django.db import models class Marker(models.Model): Svampe = ['Karl Johan', 'Østershat', 'Almindelig Kantarel', 'Trompetsvamp', 'Almindelig Morkel'] Urter = ['Brændnælde', 'Mælkebøtte', 'Skvalderkål', 'Humle', 'Syre', 'Ramsløg', 'Løgkarse'] Frugt = ['Æble', 'Blomme', 'Mirabel', 'Pære'] Bær = ['Brombær', 'Hindbær', 'Skovjordbær', 'Havtorn', 'Hyldebær', 'Kirsebær'] PlantName = models.CharField(max_length=50) lat = models.DecimalField(max_digits=10, decimal_places=8) lon = models.DecimalField(max_digits=10, decimal_places=8) My views.py: from django.shortcuts import render, redirect from django.contrib.auth.decorators import login_required from django.http import Http404 from .models import Marker from .forms import MarkerForm # Create your views here. def index(request): if Marker.PlantName in Marker.Bær: MarkerColour = 'black' else: MarkerColour = 'green' marker = Marker.objects.order_by('PlantName') if request.method != 'POST': form = MarkerForm() else: form = MarkerForm(data=request.POST) if form.is_valid(): new_marker = form.save(commit=False) new_marker.save() context = {'form': form, 'marker': marker, 'MarkerColour': MarkerColour} return render(request, 'fruitmaps/index.html', context) So im … -
Docker-Compose, Django: 'could not translate host name "db" to address: Name or service not known'
I am attempting to set up a Django project with a Postgres database on Semaphore-ci via Docker-Compose. The database container does not appear to be running. I am receiving an error message 'django.db.utils.OperationalError: could not translate host name "db" to address: Name or service not known'. I have included my docker-compose.yml, semaphore.yml and settings.py below. docker-compose.yml version: "3.9" services: db: image: postgres volumes: - ./data/db:/var/lib/postgresql/data environment: - POSTGRES_DB=postgres - POSTGRES_USER=postgres - POSTGRES_PASSWORD=postgres web: build: . command: python3 ./zenmon/manage.py runserver 0.0.0.0:8000 volumes: - .:/opt/app ports: - "8000:8000" depends_on: - db semaphore.yml # .semaphore/semaphore.yml version: v1.0 name: Initial Pipeline agent: machine: # Use a machine type with more RAM and CPU power for faster container # builds: type: e1-standard-2 os_image: ubuntu1804 blocks: - name: Build task: # Mount a secret which defines DOCKER_USERNAME and DOCKER_PASSWORD # environment variables. # For info on creating secrets, see: # https://docs.semaphoreci.com/essentials/using-secrets/ secrets: - name: dockerhub jobs: - name: Docker build commands: # Authenticate with Docker Hub - 'echo "${DOCKER_PASSWORD}" | docker login -u "${DOCKER_USERNAME}" --password-stdin' - sem-version python 3.8 - checkout - mkdir .pip_cache - cache restore - pip install --cache-dir .pip_cache -r requirements.txt - cache store - docker-compose build - 'docker pull $DOCKER_USERNAME/zenmon:latest || true' … -
Run consumer methods without waiting for previous call to end
I am working on a django channels project but have ran into a bit of an issue. Whenever consumer receives some data the receive method has to perform some async tasks depending on the data. But if more data is sent later and previous call is not finished then the new call waits for previous one to end. This is an issue in my project. Is there any way I can make consumer methods to run without waiting for previous call to finish? -
returning more informations with token authenticatio in django rest framework
I have implemented token authentication for my django project. when generating the token for the user after the POST request. I need to return other informations with the token like: { "Token": "token string", "email": "email@email.com", "phone": "12345", "photo": depending on the photo serailizer } Please how can i do it ? Here is my code: Models.py class User(AbstractUser): username = None email = models.EmailField(max_length=100, verbose_name='email', unique=True) phone = models.CharField(max_length=100) USERNAME_FIELD = 'email' REQUIRED_FIELDS = [] objects = UserManager() Views.py class AuthToken(auth_views.ObtainAuthToken): serializer_class = AuthTokenSerializer if coreapi is not None and coreschema is not None: schema = ManualSchema( fields=[ coreapi.Field( name="email", required=True, location='form', schema=coreschema.String( title="Email", description="Valid email for authentication", ), ), coreapi.Field( name="password", required=True, location='form', schema=coreschema.String( title="Password", description="Valid password for authentication", ), ), ], encoding="application/json", ) Serializers.py class AuthTokenSerializer(serializers.Serializer): email = serializers.EmailField(label=_("Email")) password = serializers.CharField( label=_("Password",), style={'input_type': 'password'}, trim_whitespace=False ) def validate(self, attrs): email = attrs.get('email') password = attrs.get('password') if email and password: user = authenticate(request=self.context.get('request'), email=email, password=password) if not user: msg = ('Unable to log in with provided credentials.') raise serializers.ValidationError(msg, code='authorization') else: msg = ('Must include "username" and "password".') raise serializers.ValidationError(msg, code='authorization') attrs['user'] = user return attrs class UserSerializer(serializers.ModelSerializer): photo = PhotoSerializer() class Meta: model = User fields … -
I'd like to make two for-phrases into one
I am a student who is studying Django. I want to show the price and quantity well, but as I write the for statement like that, the value of saving is doubled. I want to write the for statement in one sentence, so please let me know if there is a way to write it. I'd appreciate it if you could help me. if request.method == "POST": form = JoinDetailForm(request.POST) if form.is_valid(): for quantity in request.POST.getlist('quantity'): for price2 in request.POST.getlist('price2'): join_detail = JoinDetail() join_detail.join_code = join join_detail.designated_code = Designated.objects.get(product_code=id) join_detail.quantity = quantity join_detail.price = price2 join_detail.save() -
formset use custom button for add or delete objects
hello i'm going crazy with django formset. the part of creating multiple objects in the db works fine, but I can only generate objects via the 'extra' parameter. I have created two buttons to add or delete objects dynamically but I don't know how to do it. I urgently ask for a hand from some expert who can explain it to me in a simple way, nothing too complex, or who can give me useful links to find the solution. enter image description here -
Celery tasks are not adding object to db Django/Postgres
I have trouble with celery using it in docker, it receives tasks and in terminal sends that everything works fine, but it creates nothing in the database(I use Postgres). I think that problem somewhere in docker, but not sure. Consol doesn't give any errors. Can't find anything in the internet about it, please help me with this problem my docker-compose file: version: "3" services: app: build: context: . ports: - "8000:8000" volumes: - ./app:/app command: > sh -c "python manage.py wait_for_db && python manage.py makemigrations && python manage.py migrate && python manage.py test&& python manage.py runserver 0.0.0.0:8000" environment: - DB_HOST=db - DB_NAME=app - DB_USER=postgres - DB_PASS=supersecretpassword - CELERY_BROKER=redis://redis:6379/0 - CELERY_BACKEND=redis://redis:6379/0 depends_on: - db db: image: postgres:13-alpine environment: - POSTGRES_DB=app - POSTGRES_USER=postgres - POSTGRES_PASSWORD=supersecretpassword redis: ports: - "6379:6379" image: redis:5-alpine celery-beat: build: . user: root command: celery -A app beat -l INFO environment: - DB_HOST=db - CELERY_BROKER=redis://redis:6379/0 - CELERY_BACKEND=redis://redis:6379/0 depends_on: - db - redis - celery celery: build: . user: root command: celery -A app worker -l INFO --pool=solo environment: - DB_HOST=db - CELERY_BROKER=redis://redis:6379/0 - CELERY_BACKEND=redis://redis:6379/0 depends_on: - db - redis my celery.py import os from celery import Celery from celery.schedules import crontab from app.settings import INSTALLED_APPS os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'app.settings') app = … -
How to run Django server on device IP address?
When I run Django server using this, python manage.py runserver ip-addr:8000 I can see the server is running in the terminal. But when I open the browser, the This site can't be reached message is displayed. There is no error I see in the terminal or the console. Also, everything works perfectly fine with 127.0.0.1 and 0.0.0.0 but not with my ip-addr. How can I run or know that if there is something wrong or any problem? -
Cookiecutter - Django: Anymail[SES] boto3 region error
I am trying to deploy to AWS(EC2) a Cookiecutter Django project. The AWS user with this credentials has ful S3, SES and SNS policies. The EC2 server has also a role with full SES/S3 policies. In production file in envs I have the keys set up like this. DJANGO_AWS_ACCESS_KEY_ID=xxxxxxxxx DJANGO_AWS_SECRET_ACCESS_KEY=xxxxxxxxxx DJANGO_AWS_STORAGE_BUCKET_NAME=xxxxxxxxxx In settings I have AWS_S3_REGION_NAME = env("DJANGO_AWS_S3_REGION_NAME", default=None) AWS_ACCESS_KEY_ID = env("DJANGO_AWS_ACCESS_KEY_ID") AWS_SECRET_ACCESS_KEY = env("DJANGO_AWS_SECRET_ACCESS_KEY") AWS_STORAGE_BUCKET_NAME = env("DJANGO_AWS_STORAGE_BUCKET_NAME") EMAIL_BACKEND = "anymail.backends.amazon_ses.EmailBackend" ANYMAIL = {} All nice and fine until the project tries to send an email using SES and it crashes with the error bellow . Until now I have tried: adding DJANGO_AWS_S3_REGION_NAME to the production file in envs - no result adding the region in aws config using aws cli - no result overriding the settings in ANYMAIL ={} with credetials and region - no result making a blank project, just adding the aws credentials and not changing anything else - no result creating manually on another project a boto3.session.client with the same credentials and sending a mail - it works This is the error. The second part with 'NoneType' object has no attribute 'send_raw_email' repeats a lot after this. django_1 | [2021-08-13 13:58:14 +0000] [12] [ERROR] Error handling … -
how to loop through a python list of nothing
I am trying to create a online class and want to loop through the list of the classes to see if he/she been registered or not problem is if the list be empty it will return an error I am using django and django-restframework here is my code @api_view(['POST']) @permission_classes([IsAuthenticated,]) def createOrderForOnlineClasses(request): user = request.user data = request.data Class = OnlineClass.objects.get(id= data["classId"]) orderCred = { 'pin' : 'somepin', 'amount' : int(Class.totalPrice), 'callback' : 'http://localhost:3000/verify/', } for i in user.userprofile.onlineClass.all(): if i == Class: return Response({"details": "allready registered"}, status=status.HTTP_400_BAD_REQUEST) else: try: response = requests.post("URL_TO_SOMEWHERE", data=orderCred) if response.status_code == 200 and not response.text.replace('-',"").isdigit(): registeredClass = RegisterStudentForOnlineClass.objects.create( user=user, totalPrice = int(Class.totalPrice), transId = response.text, onlineClassName= Class ) serializer = RegisterForClassSerializer(registeredClass , many=False) return Response(serializer.data) else: return Response({"details": ""} , status= status.HTTP_400_BAD_REQUEST) except Exception as e: return Response({"details": e}) here is the returned error Expected a `Response`, `HttpResponse` or `HttpStreamingResponse` to be returned from the view, but received a `<class 'NoneType'>` Thank you :) -
Object of type CarBrandForm is not JSON serializable
CarBrandForm in this example is a ModelForm. def post(self,request): if request.method== "POST": form=CarBrandForm(request.POST) if form is not None: if form.is_valid(): form.save() request.session['user']=form return render(request,'carbrand/branddetails.html') return render(request,'carbrand/carbrandregister.html') Showing error when i started to store session variable. This is the first iam using session, So if there is any improvments and precaution that i have to take is always welcome. Thankyou! -
How to use a Python script that uses Selenium in a Web App
I'm looking for some guidance as I'm having trouble finding any answers when I search, as well as struggling to formulate what I actually want into search terms. In short, I currently have a Python script that will take an excel spreadsheet containing 2 columns, 1 containing a number, the other containing a string. It then uses Selenium and chromedriver to log in to a website, enter the number from column 1, do some more clicking and then add the note from column 2. It loops through all of the numbers in Column 1 to do this. The script works perfectly but I need to share it with some colleagues and I figure the best way to do that would be to create a web app using Django that they can upload the excel or csv file to, but I'm struggling to figure out how I would then get the script to run and use the data from the uploaded file. When a user uploads the file, how do I then get this to start the Python script? How do i then post the results of the script, i.e, whether it successfully added a note for each number, back to … -
pass user data to serializer in nested serializers when creating object in django rest framework
When User tries to add an Announcement, should i pass all the informations of the user in the form ? i'm using token authentification. So for adding an Announcement the user must be authenticated. Models.py class User(AbstractUser): username = None email = models.EmailField(max_length=100, verbose_name='email', unique=True) USERNAME_FIELD = 'email' REQUIRED_FIELDS = [] objects = UserManager() class Announcement(models.Model): author = models.ForeignKey(User, on_delete=models.CASCADE) name = models.CharField(max_length=100) photo = models.ManyToManyField(Photo, blank=True) class Photo(models.Model): name = models.CharField(max_length=100) content_type = models.CharField(max_length=100) path = models.CharField(max_length=100) class Parameter(models.Model): name = models.CharField(max_length=100) value = models.FloatField(blank=True, null=True) announcement = models.ForeignKey( Announcement,related_name='parameters', on_delete=models.CASCADE) Serializers.py class AnnouncementSerializer(serializers.ModelSerializer): author = UserSerializer(required=True) parameters = ParameterSerializer(many=True, required=False) photo = PhotoSerializer(many=True, required=False) class Meta: model = Announcement fields = ['id', 'name', 'author', 'parameters', 'photo'] class UserSerializer(serializers.ModelSerializer): photo = PhotoSerializer() class Meta: model = User fields = ['id', 'email','photo', ] class ParameterSerializer(serializers.ModelSerializer): class Meta: model = Parameter fields = '__all__' class PhotoSerializer(serializers.ModelSerializer): class Meta: model = Photo fields = '__all__' Views.py class AnnouncementCreate(CreateAPIView): permission_classes = [IsOwner] queryset = models.Announcement.objects.all() serializer_class = AnnouncementSerializer class IsOwner(permissions.BasePermission): def has_permission(self, request, view): return request.user and request.user.is_authenticated() def has_object_permission(self, request, view, obj): return obj.user == request.user When trying the browsable API. to create a new announcement i have to enter all the … -
Crontab seems to start scripts but nothing happens
I have defined quite a few cronjobs in my docker container, that I let running while I went for some holidays. When I came back, everything had stopped. It appears that the container restarted at some point during my time off and I didn't configure my docker well enough for it to restart the crontab service by itself. However now that I have restarted it, my cronjobs do not work. I checked that the services are running, I can ensure that crontab is doing part of its job, because its entries are logged successfully in syslog. But my script doesn't get executed. I started it with a write into a logfile (my tasks are using Django commands and the python logging library), but the log file doesn't get updated. Running the command manually from the command line is still working, my commands specify the absolute path for everything (even the python binary to use...). I don't know where to look at to understand what's wrong at this point. Note : I did update some of my code since I came back from my holidays, but none should affect the starting log message that lies in my scripts. As a test, … -
How to optimize and simplify query in django 2.2
I had a raw sql query: UPDATE store_codeinventory set recipient_id = 1168, claimed_date = NOW() where id = ANY((select array(select id from store_codeinventory where recipient_id is NULL and inv_id = 72 and is_active=true ORDER BY ID ASC LIMIT 1 FOR UPDATE)) ::integer[]) and recipient_id is NULL; and tried to optimize it that led me to the django orm query: CodeInventory.objects.filter( **CodeInventory.objects.select_for_update(skip_locked=True).filter(recipient=None, is_active=True, inv_id=72) .aggregate(id=models.Min('id')) ).update(recipient_id=1168, claimed_date=timezone.now()) Can we optimize it better? -
Create form to change relationship from related model's form
I have two models: class Thing(forms.ModelForm): class Owner(forms.ModelForm): thing = models.OneToOneField(Thing) I want to add a form to change the owner in Thing's UpdateView. I can do it like this: class ThingForm(forms.ModelForm): owner = forms.ModelChoiceField( queryset=Owner.objects.all(), ) class Meta: model = Thing fields = '__all__' And then process the result inside form_valid() method. But isn't there a more direct approach for this, where i just add this to the fields of the form? -
Return the number of times my django model object was retrieved today
With a model like below, I want to return the number of times an object was retrieved today class Watched(Stamping): user = models.ForeignKey("User", null=True, blank=True, on_delete=models.CASCADE, default=None) count = models.PositiveIntegerField() The Stamping is another model with created_at and updated_at -
CSS isn't loading in Django
I have a problem with my Django project which does not want to load static files. I tried a lot of solutions proposed here in the forum like: settings.py -> setting the STATICFILES_DIRS (I had it from the beginning but was trying different things) changing my URL paths in the html links tag moving everything into one template instead of extending adding app name in urls adding css to mime moving load static to head and many more out of which all failed. Could anyone see what the problem in the code is? Thank you My project has a structure like this: my_site blog -- static/blog -- templates/blog -- standard Django files my_site -- standard Django files templates static -- images BLOG: urls.py: from django.urls import path from . import views from django.contrib.staticfiles.urls import staticfiles_urlpatterns app_name = "blog" urlpatterns = [ path("index", views.index, name="index"), path("posts", views.posts_list, name="posts_list"), path("posts/<slug:slug>", views.post, name="post") ] urlpatterns += staticfiles_urlpatterns() views.py: from django.http.response import HttpResponse from django.shortcuts import render # Create your views here. def index(request): return render(request, 'blog/index.html') def posts_list(request): return render(request, "blog/posts_list.html") def post(request): return render(request, "blog/post.html") templates/blog/index.html: {% extends "base.html" %} {% load static %} {% block title %} Yogiri {% endblock %} … -
Generic DeleteView is returning django.db.models.query_utils.DeferredAttribute object at 0x04725628 - Django
Disclaimer: I'm just a novice trying to learn Django Hello, I'm trying to refactor my code and modify all the views that I have created to be Class Based Views. I have an issue loading a form with DeleteView that is showing the data and at the same time is disabled. I have some success and the only thing that I cannot figure out how to do is to show the data instead of the message that appears now "<django.db.models.query_utils.DeferredAttribute object at 0x04725628>" +models.py: class Note(models.Model): title = models.CharField(max_length=30) image_url = models.URLField() content = models.TextField() owner = models.ForeignKey(Profile, default=8, on_delete=models.CASCADE) def get_absolute_url(self): return reverse(self.pk) def __str__(self): return f'{self.title}' +forms.py class NoteForm(forms.ModelForm): class Meta: model = Note exclude = ('owner',) class DeleteNoteForm(NoteForm): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) for (_, field) in self.fields.items(): field.widget.attrs['readonly'] = True field.widget.attrs['disabled'] = True +views.py class DeleteNoteView(DeleteView): model = Note template_name = 'note-delete.html' form_class = DeleteNoteForm success_url = reverse_lazy('home page') def get_context_data(self, **kwargs): data = super().get_context_data(**kwargs) data['form'] = self.form_class(instance=self.model) return data +urls.py path('delete/<int:pk>/', views.DeleteNoteView.as_view(), name='delete note'), +template <!--note delete data form--> <div class="form"> <form method="POST"> {{ form }} {% csrf_token %} <input type="submit" value="Delete"/> </form> </div> <!--end note delete data form--> If I use my view …