Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
Django - Encrypt whole instance
I'm currently figuring out what would be the best way to encrypt an instance of a model in Django. Encrypting single fields seems easy, but I would like to encrypt a whole instance. Context I'm currently building a note-taking application which should have the ability to optionally encrypt a note using a given password. The model looks something like this: class Note(models.Model): title = CharField() content = TextField() created_at = DateTimeField() edited_at = DateTimeField() While I could simply only encrypt the title and content, I don't want that to avoid telling any information about a note when it is encrypted. So basically all fields (event created_at and edited_at) should be encrypted. Thoughts I thought about adding a second model EncryptedNote which only holds a field encrypted_data. This field contains the data in a JSON format in an encrypted form. When the application needs to load the instance, it will decrypt the content and create a Note instance based on the JSON data. However, it feels a little bit off to manually save JSON when using a SQL-like database. Question Is there already a good (and secure) way to encrypt an instance or is this idea of manually encrypting and decrypting … -
NextJS/Django 404 page issue & Unhandled runtime error
So I am creating a blog using django as a backend, nextjs as a fronted. I am having an issue with categories in navbar, as all of them are returning 404 error (just before 404, I get Unhandled runtime error for less than a second, I attached a screenshot) Anyway, here is my Navbar.js component, where I use categories import Link from 'next/link' const Navbar = () => { return ( <nav className='navbar navbar-expand-lg navbar-light bg-light'> <div className='p-2 text-muted'><Link className='navbar-brand' href={'/'}>5minRead</Link></div> <button className='navbar-toggler' type='button' data-toggle='collapse' data-target='#navbarNavAltMarkup' aria-controls='navbarNavAltMarkup' aria-expanded='false' aria-label='Toggle navigation'> <span className='navbar-toggler-icon'></span> </button> <div className='collapse navbar-collapse' id='navbarNavAltMarkup'> <div className='navbar-nav'> <div className='p-4 text-muted'><a href={'/category/world'}>WORLD</a></div> <div className='p-4 text-muted'><Link href={'/category/enviroment'}>ENVIROMENT</Link></div> <div className='p-4 text-muted'><Link href={'/category/technology'}>TECHNOLOGY</Link></div> <div className='p-4 text-muted'><Link href={'/category/culture'}>CULTURE</Link></div> <div className='p-4 text-muted'><Link href={'/category/business'}>BUSINESS</Link></div> <div className='p-4 text-muted'><Link href={'/category/health'}>HEALTH</Link></div> <div className='p-4 text-muted'><Link href={'/category/travel'}>TRAVEL</Link></div> <div className='p-4 text-muted'><Link href={'/category/fashion'}>FASHION</Link></div> <div className='p-4 text-muted'><Link href={'/category/opinion'}>OPINION</Link></div> <div className='p-4 text-muted'><Link href={'/subscribe'}>SUBSCRIBE</Link></div> </div> </div> </nav> ) } export default Navbar here is my Category.js component (any category click from Navbar should navigate here) const Category = () => { return ( <div> category </div> ) } export default Category here is my views.py that contain APIView class BlogPostCategoryView(APIView): serializer_class = BlogPostSerializer permission_classes = (permissions.AllowAny, ) def post(self, request, format=None): data = self.request.data category … -
Django Rest Framework - How to make extra query before serializer.save
I'm new to Django Rest Framework and I'm trying to do this simple thing, but I'm not sure how to do it. So, this is my models.py class Category(models.Model): name = models.CharField(max_length=250) slug = models.SlugField(max_length=250, unique=True) email = models.EmailField(_('email address'), blank=True, null=True) class Meta: ordering = ('name',) def __str__(self): return self.name class Report(models.Model): category = models.ForeignKey(Category, on_delete=models.PROTECT) description = models.TextField() address = models.CharField(max_length=500) reporter_first_name = models.CharField(max_length=250) reporter_last_name = models.CharField(max_length=250) reporter_email = models.CharField(max_length=250) reporter_phone = models.CharField(max_length=250) report_image_1 = models.ImageField(_("Image"), upload_to=upload_to, null=True, blank=True) report_image_2 = models.ImageField(_("Image"), upload_to=upload_to, null=True, blank=True) report_image_3 = models.ImageField(_("Image"), upload_to=upload_to, null=True, blank=True) date = models.DateTimeField(default=timezone.now) class Meta: ordering = ('-date',) def __str__(self): return self.description I have a form in React that submits, among other values, the category ID. What I need to do, before saving the report to the DB, is send a mail to the email address of that category ID. This is my views.py class ManageCategories(viewsets.ModelViewSet): serializer_class = CategorySerializer def get_object(self, queryset=None, **kwargs): item = self.kwargs.get('pk') return get_object_or_404(Category, slug=item) def get_queryset(self): return Category.objects.all() class ManageReports(viewsets.ModelViewSet): serializer_class = ReportSerializer parser_classes = [MultiPartParser, FormParser] def get_permissions(self): if self.action == 'create': self.permission_classes = [permissions.AllowAny] else: self.permission_classes = [permissions.IsAuthenticated] return super(self.__class__, self).get_permissions() def create(self, request, *args, **kwargs): serializer = ReportSerializer(data=request.data) if … -
Supervisor when uploading a project to the server
I am trying to run my site (Django based) on a VPN server and I am having a problem. I am unable to set up a supervisor. When entering the command sudo supervisorctl reread The message appears: no config updates to processes It is quite possible that this is due to the fact that I changed the configuration file. But what to do now, I do not know. I changed the configuration file, but currently there are no errors. -
How can I edit manytomanyfield data
I am trying to edit manytomanyfield data. Here is my model class Permission(models.Model): shop = models.ForeignKey(Shop, on_delete=models.SET_NULL, null=True) permission_title = models.CharField(max_length=255) class Meta: ordering = ["-id"] def __str__(self): return self.permission_title class Roles(models.Model): shop = models.ForeignKey(Shop, on_delete=models.SET_NULL, null=True) role_title = models.CharField(max_length=255) permissions = models.ManyToManyField(Permission) class Meta: ordering = ["-id"] def __str__(self): return self.role_title Here in these models i have a model called permission. this model is in a manytomanyfield relation with Roles model. I want to edit this manytomanyfield. I have already did the creation part. But now i want to edit the data and I want to show the data in the templates, I chose while creating a role. I want to show it an input type checkox Here is my views:- def createRolesView(request, shop_id): shopId = get_object_or_404(Shop, pk=shop_id) permissions = Permission.objects.filter( shop=shopId.id ) if shopId.user == request.user: if request.method == "POST": role_title = request.POST.get("role_title") shop = Shop.objects.get(id=shopId.id) permissions = request.POST.getlist("permissions") rl = Roles( role_title = role_title, shop = shop, ) rl.save() for p in permissions: rl.permissions.add(p) rl.save() return redirect(f"/adminpanel/roles/{shopId.id}/") args = { "shopId": shopId, "permissions": permissions, } return render(request, "roles/create-role.html", args) else: return redirect("warning") def editRolesView(request, role_id, shop_id): shopId = get_object_or_404(Shop, pk=shop_id) roleId = get_object_or_404(Roles, pk=role_id) if shopId.user == … -
Access "Browser" location
We all have seen this prompt: As far as I know, this is not IP-based location. This is device-based location. I don't want IP-based location because 1) It's not reliable and 2) If the user browses my website with a VPN, the location data is absolutely wrong. I've searched PyPi.org and DjangoPackages.org but didn't find anything to implement that in my Django app. Is there any solution? -
How to make a dynamic query builder in Django
I am working on a small project where I need to make complex queries that can be grouped in a logical format. For example consider an table Books, and we need to select certain books based on filters such as 5 books from (author_reputation > 4 && recent_sale_rating > 3) AND 7 books from (book_length < 150 || recent_sale_rating > 4) So a total of 13 Books are selected using the above two queries. I was trying to figure out a way to use django FilterSet for this, finding it difficult to work through it. Also tried other libraries like djangoql etc. Any help or guidance on how to look at the problem will be of great help! -
Django Rest Framework Authentication not working
I was following a tutorial to create a Django authentication module in my app so I succeeded in creating user and login but unfortunately, some errors occurred in my project when I'm implementing the authentication, I have attached the code and error below, pls see if anyone can help. error: django_1 | Traceback (most recent call last): django_1 | File "/usr/local/lib/python3.10/site-packages/django/core/handlers/exception.py", line 47, in inner django_1 | response = get_response(request) django_1 | File "/usr/local/lib/python3.10/site-packages/django/core/handlers/base.py", line 181, in _get_response django_1 | response = wrapped_callback(request, *callback_args, **callback_kwargs) django_1 | File "/usr/local/lib/python3.10/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view django_1 | return view_func(*args, **kwargs) django_1 | File "/usr/local/lib/python3.10/site-packages/django/views/generic/base.py", line 70, in view django_1 | return self.dispatch(request, *args, **kwargs) django_1 | File "/usr/local/lib/python3.10/site-packages/rest_framework/views.py", line 492, in dispatch django_1 | request = self.initialize_request(request, *args, **kwargs) django_1 | File "/usr/local/lib/python3.10/site-packages/rest_framework/views.py", line 394, in initialize_request django_1 | authenticators=self.get_authenticators(), django_1 | File "/usr/local/lib/python3.10/site-packages/rest_framework/views.py", line 272, in get_authenticators django_1 | return [auth() for auth in self.authentication_classes] django_1 | File "/usr/local/lib/python3.10/site-packages/rest_framework/views.py", line 272, in <listcomp> django_1 | return [auth() for auth in self.authentication_classes] django_1 | TypeError: 'str' object is not callable authentication -> jwt.py class JWTAuthentication(BaseAuthentication): def authenticate(self, request): auth_header = get_authorization_header(request) auth_data = auth_header.decode('utf-8') auth_token = auth_data.split(" ") if len(auth_token) != 2: … -
how to get time since from datetime field
In Django templates, I can do time since on my model to get how long a post was made Model class Post(models.Model): author = models.ForeignKey(User, on_delete=CASCADE) trade = models.CharField(max_length=100) date_posted = models.DateTimeField(default=timezone.now) {{post.date_posted|timesince}} The above would return me something like 1 day, 8 hours ago My question is how would I do it on my model itself? So that the date_posted field returns it in the humanized format itself. I tried adding the following to my model but it doesn't work def FORMAT(self): return timesince(self.date_posted) -
Version control for Custom Postgres Function in Django
I have a custom postgres function in my Django app. Keeping it up to date with migrations works, but is very hard to code review / move changes from the DB to the migration, because each migration is an entire new block of SQL, like so: def update_func(apps, schema_editor): schema_editor.execute( """ CREATE OR REPLACE FUNCTION public.function() .... ect Does anyone have a similar situation and know a better way to version control the function? -
import error 'force_text' from 'django.utils.encoding'
I'm implementing a graphql solution using python, graphene and django and I'm getting the following import error: Result: Failure Exception: ImportError: cannot import name 'force_text' from 'django.utils.encoding' "/home/site/wwwroot/.python_packages/lib/site-packages/graphene_django/utils/utils.py", line 6, in <module> from django.utils.encoding import force_text I'm not sure about the versions and whether I need to import an additional module. My requirements.txt is like: graphene>=2.1,<3 graphene-django>=2.1,<3 graphql-core>=2.1,<3 graphql-relay==2.0.1 django-filter>=2 Has someone had a similar problem and can look at the versions that I use? Thanks -
I am getting a 'TypeError at /' message in the port when running my django code
this is my models.py This is my views.py This is the error page -
Change default value base on changed primary key field
my models: class Student(models.Model): code_stu = models.PositiveIntegerField() age_stu = models.PositiveIntegerField(default=20) class Cal_age(models.Model): code = models.ForeignKey(Student,on_delete=models.SET_NULL) age = models.PositiveIntegerField() When I am changing code field in admin panel,i want age field will change by related value in age_stu -
Transforming SQL Query to Django Expression
Assuming I have the following Django models and the according SQL-Tables with some data: UserAnswer: | id | answer | partquestion_id | |----|--------|-----------------| | 1 | 667 | 1 | PartQuestion: | id | question_id | |----|-------------| | 1 | 1 | Solution: | id | content | question_id | |----|---------|-------------| |1 | 667 | 1 | |2 | 85 | 2 | I want to get all User answers where the answer is equal to the solution of the according question. I've came up with this SQL-Query but can't really think of how to implement this into a Djano query: select * from (useranswer join partquestion on useranswer.partquestion_id = partquestion.id) join solution on partquestion.question_id = solution.question_id where answer=content; This will output the following: | id | answer | partquestion_id | id | question_id | id | content | question_id | |----|--------|-----------------|----|-------------|----|---------|-------------| | 1 | 667 | 1 | 1 | 1 | 1 | 667 | question_id I just can't get my head around this concept in Django. Maybe using F-Expressions and some stuff. Thanks for any advice. -
Autoincrement field dependent for number of specific value appearances in django
I'm looking for a good example or advice to solve my problem in Django & python. I've simple model like Customer class Customer(models.Model): customer_name = models.CharField(max_length=500) CUSTOMER_CHOICES = [ ('pc', 'Private Customer'), ('bc', 'Business Customer'), ] customer_type = models.CharField(max_length=2, choices=CUSTOMER_CHOICES) For all customers, I want to build (and show on page) a specific "Customer Number" based on customer type and a decimal number. I think I might store this value in the Customer table (somethink like this): |id|customer_name|customer_type|customer_number| |1 |Private 1 |pc |1 | |2 |Private 2 |pc |2 | |3 |Business 1 |bc |1 | |4 |Private 3 |pc |3 | |5 |Business 2 |bc |2 | Of course, when I'll modify the customer name or other value (except customer type and customer number) I don't want to update this number. It is possible to avoid the number gaps or duplicate numbers? I think the bellow code will not work (this is just an example as first thought), because I don't know how the code will work when I'll have two different sessions and when I press the save button at the same time. def save(): if customer_number is None: last_number = Customer.objects.all().filter(customer_type=passed_type).last() #bellow in the pseudocode new_invoice_number = … -
I am getting error while installing web3 module in my django project
ERROR: Command errored out with exit status 1: command: 'C:\Users\saran\OneDrive\Desktop\interview\crypto\core\meta\Scripts\python.exe' -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\saran\\AppData\\Local\\Temp\\pip-install-j3khl3b4\\cytoolz_486c7a4bef2c4764b3179a18383f6bd7\\setup.py'"'"'; __file__='"'"'C:\\Users\\saran\\AppData\\Local\\Temp\\pip-install-j3khl3b4\\cytoolz_486c7a4bef2c4764b3179a18383f6bd7\\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\saran\AppData\Local\Temp\pip-record-s5xwa9zp\install-record.txt' --single-version-externally-managed --compile --install-headers 'C:\Users\saran\OneDrive\Desktop\interview\crypto\core\meta\include\site\python3.10\cytoolz' cwd: C:\Users\saran\AppData\Local\Temp\pip-install-j3khl3b4\cytoolz_486c7a4bef2c4764b3179a18383f6bd7\ Complete output (49 lines): ALERT: Cython not installed. Building without Cython. running install running build running build_py creating build creating build\lib.win-amd64-3.10 creating build\lib.win-amd64-3.10\cytoolz copying cytoolz\compatibility.py -> build\lib.win-amd64-3.10\cytoolz copying cytoolz\_signatures.py -> build\lib.win-amd64-3.10\cytoolz copying cytoolz\_version.py -> build\lib.win-amd64-3.10\cytoolz copying cytoolz\__init__.py -> build\lib.win-amd64-3.10\cytoolz creating build\lib.win-amd64-3.10\cytoolz\curried copying cytoolz\curried\exceptions.py -> build\lib.win-amd64-3.10\cytoolz\curried copying cytoolz\curried\operator.py -> build\lib.win-amd64-3.10\cytoolz\curried copying cytoolz\curried\__init__.py -> build\lib.win-amd64-3.10\cytoolz\curried copying cytoolz\dicttoolz.pyx -> build\lib.win-amd64-3.10\cytoolz copying cytoolz\functoolz.pyx -> build\lib.win-amd64-3.10\cytoolz copying cytoolz\itertoolz.pyx -> build\lib.win-amd64-3.10\cytoolz copying cytoolz\recipes.pyx -> build\lib.win-amd64-3.10\cytoolz copying cytoolz\utils.pyx -> build\lib.win-amd64-3.10\cytoolz copying cytoolz\cpython.pxd -> build\lib.win-amd64-3.10\cytoolz copying cytoolz\dicttoolz.pxd -> build\lib.win-amd64-3.10\cytoolz copying cytoolz\functoolz.pxd -> build\lib.win-amd64-3.10\cytoolz copying cytoolz\itertoolz.pxd -> build\lib.win-amd64-3.10\cytoolz copying cytoolz\recipes.pxd -> build\lib.win-amd64-3.10\cytoolz copying cytoolz\utils.pxd -> build\lib.win-amd64-3.10\cytoolz copying cytoolz\__init__.pxd -> build\lib.win-amd64-3.10\cytoolz creating build\lib.win-amd64-3.10\cytoolz\tests copying cytoolz\tests\dev_skip_test.py -> build\lib.win-amd64-3.10\cytoolz\tests copying cytoolz\tests\test_compatibility.py -> build\lib.win-amd64-3.10\cytoolz\tests copying cytoolz\tests\test_curried.py -> build\lib.win-amd64-3.10\cytoolz\tests copying cytoolz\tests\test_curried_toolzlike.py -> build\lib.win-amd64-3.10\cytoolz\tests copying cytoolz\tests\test_dev_skip_test.py -> build\lib.win-amd64-3.10\cytoolz\tests copying cytoolz\tests\test_dicttoolz.py -> build\lib.win-amd64-3.10\cytoolz\tests copying cytoolz\tests\test_docstrings.py -> build\lib.win-amd64-3.10\cytoolz\tests copying cytoolz\tests\test_doctests.py -> build\lib.win-amd64-3.10\cytoolz\tests copying cytoolz\tests\test_embedded_sigs.py -> build\lib.win-amd64-3.10\cytoolz\tests copying cytoolz\tests\test_functoolz.py -> build\lib.win-amd64-3.10\cytoolz\tests copying cytoolz\tests\test_inspect_args.py -> build\lib.win-amd64-3.10\cytoolz\tests copying cytoolz\tests\test_itertoolz.py -> build\lib.win-amd64-3.10\cytoolz\tests copying … -
How to convert the image received with django request FILES into pdf
I saw many answers, but it was hard to find the answer I wanted. I don't want to find files locally and save them locally. I want to receive the image with request FILES and convert it directly into pdf. I'd appreciate it if you could give me an answer. Finally, I want to upload it to s3. def create(self): file = self.request.FILES.get('file', None) # image -> pdf # local save() No. ... Is there something wrong with the settings? # settings.py STATIC_URL = 'https://%s/%s/' % (AWS_S3_CUSTOM_DOMAIN, AWS_LOCATION) STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage' STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static') ] # MEDIA_ROOT = os.path.join(BASE_DIR, 'media') DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage' -
Get the name or labe from django IntegerChoices providing a valid value
I have django 3.2 and an IntegerChoices class class Type(models.IntegerChoices): GENERAL = 2, _("general address") DELIVERY = 4, _("delivery address") BILLING = 6, _("billing address") I can get the Value name and label easily by doing Type.GENERAL , Type.GENERAL.name and Type.GENERAL.label. But how can I get these values if I only have the value, e.g. I want to get the Name DELIVERY from the value 4. Type[4].name ist not working as the list values does not correspond to the int values of the enum. Thanks Matt -
how do I increase number of order detail without refreshing
I am beginner in Django, I create checkout page and when user on change input range number enter image description here it s send to server but it work for first one I think because I set same id for all input and I can t change it because it s in for tag how can I fix it? Django part class Ajax_Handler(View): def get(self,request): if request.is_ajax(): count=request.GET['count'] return JsonResponse({'count':count},status=200) ajax part $(document).ready(function(){ var crf=$('input[name=csrfmiddlewaretoken]').val(); $("#icount").change(function(){ $.ajax({ url:'/adding', type:'get', data:{ count:$('#icount').val(), }, success:function(respond){ $('#icount').val(respond.count) } }); }); }); html part <tbody> {% for order in order.orderdetail_set.all %} <tr> <td class="product-image"> {% thumbnail order.product.image "100x100" crop="center" as im %} <img src="{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}"> {% endthumbnail %} </td> <td class="product-name"><a href="products/{{order.product.id}}">{{order.product.title}}</a></td> <td class="product-price">{{order.product.price|intcomma:False}}تومان</td> <td class="product-quantity"> <label>تعداد</label> <input type="hidden" name="order_id{{order.id}}" value="{{order.id}}"> <input name='count' id='icount' min="1" max="100" value="{{order.count}}" type="number"> </td> <td class="product-total">{{order.totalprice|intcomma:False}}</td> <td class="product-remove"><a href="delete/{{order.id}}"><i class="fa fa-trash-o"></i></a></td> </tr> {% endfor %} </tbody> -
For the two errors of updateview, Django
I will write down the code first and explain it below. views.py class comment_update(UpdateView): model = Comment fields = '__all__' # success_url = reverse_lazy('board') def get(self, request, pk): com = Comment.objects.filter(id=pk) return render(self.request, 'comment_edit.html',{ 'com' : com }) def get_success_url(self): return reverse('board_detail', kwargs={'pk':self.object.board.pk}) urls.py path('board/comment/<int:pk>/update/', views.comment_update.as_view(), name="comment_update") template <form action="{% url 'comment_update' i.id %}"> If i don't use fields in the situation as the code above, A Error occurs. When fields are used, an error of B occur. In the case of B, why does the success_url and get_sufficiency_url not work? A ImproperlyConfigured at /board/comment/4/update/ Using ModelFormMixin (base class of comment_update) without the 'fields' attribute is prohibited. B TemplateDoesNotExist at /board/comment/4/update/ board/comment_form.html -
How to use different key name in MongoDB while working with Django?
I am working on developing a micro service using Django, where I use MongoDB as backend. Folks who wrote the main code used java hence the data already present in the MongoDB collections follows camelcase pattern for e.g. firstName is the key name. Now while working with python I like to name my variables and functions using snake casing like first_name and get_first_name(). What I want is that inside the code I want to refer first name as first_name but while saving first name in DB or returning JSON response of user data I want to return it as firstName? Is there any way to achieve this behaviour? Please help me? -
Django Admin raise 500 error in production Heroku
I know this question was raised multiple times, but wasn't able to solve the problem. Here is my problem: my Django-React app is deployed on Heroku and works great (very simple app). I would like know to access the /admin part of my app, but I get a 500 Internal Server Error. The error appears locally and in Heroku. The DEBUG is False, and unfortunately I can't get the logs to work, neither in Heroku nor locally :( Here is my settings.py: from pathlib import Path import django_heroku import os # Build paths inside the project like this: BASE_DIR / 'subdir'. BASE_DIR = Path(__file__).resolve().parent.parent # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/3.2/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! SECRET_KEY = 'xxxxxxxxxxxxxxxxxxxxxx' # SECURITY WARNING: don't run with debug turned on in production! DEBUG = False ALLOWED_HOSTS = ['vmbf.herokuapp.com', '127.0.0.1', 'localhost'] ADMINS = [('username', 'emailaddress')] MANAGERS = ADMINSEMAIL_HOST = 'host' SEND_BROKEN_LINK_EMAILS=True EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = 'smtp.gmail.com' EMAIL_HOST_USER = 'emailaddress' EMAIL_HOST_PASSWORD = 'password' EMAIL_PORT = 587 EMAIL_USE_TLS = True SERVER_EMAIL = EMAIL_HOST_USER # Application definition INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'rest_framework', 'corsheaders', 'students', ] MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'whitenoise.middleware.WhiteNoiseMiddleware', … -
django - q object filtering getlist
I want to make an intersection by bringing intelligence,strength, and charm from the stat variable to the getlist, but it only comes out as a combination. What could be the reason? I'm waiting for your help. class ProductListView(View): def get(self,request): category = request.GET.get('category', None) sub_category = request.GET.get('sub_category', None) stat = request.GET.getlist('stat', None) q=Q() if category: q &=Q(sub_category__category__name=category) if sub_category: q &=Q(sub_category__name=sub_category) if stat: q &=Q(coursestat__stat__name__in=stat) products = Course.objects.filter(q).distinct() results=[{ "course_id" : product.id, "thumbnail" : product.thumbnail_image_url, "user_name" : product.user.name, "sub_category" : product.sub_category.name, "course_name" : product.name, "price" : product.price, "payment_period" : product.payment_period, "course_like" : product.like_set.count() } for product in products] return JsonResponse({"results" : results}) The query parameters created by Postman are as follows. enter image description here -
How to get id from created object in Django
I have models: Group and Members. Group have many members, but when group is creating, currentUser is automaticlly member. I'm doing everything in single request and I have problem with getting id createdGroup. My models: class Group(models.Model): groupName = models.CharField(max_length=100) description = models.CharField(max_length=255) inviteKey = models.UUIDField(default=uuid.uuid4, unique=True, editable=False) class Members(models.Model): userId = models.ForeignKey(User, on_delete=models.CASCADE) groupId = models.ForeignKey(Group, on_delete=models.CASCADE) Form: class GroupForm(forms.ModelForm): groupName = forms.CharField(label='Name', max_length=100) description = forms.CharField(label='Description', max_length=255) inviteKey: forms.CharField(label='Invite Key') class Meta: model = Group fields = ['groupName', 'description'] View: def createGroup(request): if request.method == "POST": form = GroupForm(request.POST) if form.is_valid(): form.save() currentUser = request.user print('group id', request.POST.get('id', '')) #after group creation i would add current member addMember(currentUser, True, True) # should be currentUser, createdGroup, True messages.success(request, f'Group created') return redirect('/') else: form = GroupForm() return render(request, 'group/createGroup.html',{'form': form}) How i can reach newly created group's id? I've tried something like this: group = request.POST.get('id', '') When i console.log request.POST i'm getting only (name, description) -
Django or Flask for building API?
Well, I have a desktop app developed with Python, And this app will communicate with the database for getting some data that are used (i.e login system, Activation of the software ..etc). Now I've come up with which framework should I use Django or Flask? I really get confused about which one is better for my project. Now, let's talk about the API that I want to build( not a website and it doesn't have any views or front-end), They are very small, all I need is a web application that tells the desktop app whether the user request's data which will contain the user's account is registered on the database or not, The other one is for checking if the product key that user entered from the desktop app is valid or not in every run-time. let's keep in mind in the future if we want to develop a feature or change something. I saw some people recommend Django for being have a lot of functionality, in the other hand Flask doesn't and needs extra work. others say that Flask support API whereas Django does not. Flask vs Django look at the table And some people think that Django …