Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
CSRF_token is not valid in djnango Ajax multiple request from same page
I'm trying to perform a OTP-based login in my project. So I have a form with email and password field in the login form and when I submit it through AJAX request I check for the email and password in the database, if the values are correct then I will send an OTP through email and display a new OTP field on the same page for Entering the OTP for verifications. Till now everything is working fine but after entering the OTP when I try to re-submit the form, I got an error csrf_token is not valid. As far as I know csrf_token is only generated on page refresh or page load but in my case the first csrf_token that was generated on page load was used in first post request. So now how can I send the second post request with same csrf_token or can I generate the new csrf_token . Code snippets are as follows; <form id="loginForm" method="post" action="send_otp"> <div class="col-12"> <label class="text-16 lh-1 fw-500 text-dark-1 mb-10">Email</label> <input id="email" type="text" name="email" placeholder="Name"> </div> <div class="col-12"> <label class="text-16 lh-1 fw-500 text-dark-1 mb-10">Password</label> <input id="password" type="password" name="password" placeholder="Password"> </div> <div id="otp_field" class="col-12"> </div> <div class="col-12"> <button type="submit" name="submit" id="send_otp" class="button … -
how to save the data using django channel to postgresql
I'm trying to save the data that send using django channel and postgresql. consumers.py async def connect(self): event = eventhubreader.EventReader() async def cb(partition, events): data = events[len(events)-1] await self.send(json.dumps({'value': data.body_as_json()})) now = datetime.now() dataFormat = {"IotData": {"temperature": data.body_as_json()["temperature"], "humidity": data.body_as_json()["humidity"]}, "MessageDate": now.strftime("%d/%m/%Y %H:%M:%S"), "DeviceId": data.body_as_json()['deviceId']} saverecord = Rawdata() saverecord.ref_waterplant = random.randint(20, 25) saverecord.created_at = dataFormat['MessageDate'] saverecord.is_live = True saverecord.save() print(dataFormat) await self.accept() models.py class Rawdata(models.Model): ref_waterplant = models.CharField(max_length=100) created_at = models.DateField() is_live = True class Meta: db_table = "rawdata" error An error occurred while receiving. The exception is SynchronousOnlyOperation('You cannot call this from an async context - use a thread or sync_to_async.'). -
Why all my images, buttons are not the same with the same css in Django and simple site?
I had a Website made previously in Html&CSS and I wanted to make a Django project with this site. I created a django app, uploaded the html & css & some images and set up this static files dir how it's correctly. But Why all my images, buttons and different things are not the same like without Django? Django somehow take the css differently? -
Direct assignment to the forward side of a many-to-many set is prohibited. Use categories.set() instead
This is my model class Post(models.Model): title = models.CharField(max_length=100, blank=False, null=False) description = models.TextField(max_length=1000, blank=True, null=True) created_by = models.ForeignKey(User, on_delete=models.CASCADE, related_name='post_created_by') categories = models.ManyToManyField(to=Category, blank=True, related_name='categories') This is my serializers class CreatePostSerializer(ModelSerializer): categories = serializers.CharField(error_messages={'required': "categories can't be blank"}) title = serializers.CharField(error_messages={'required': "title can't be blank"}) description = serializers.CharField(error_messages={'required': "description can't be blank"}) class Meta: model = Post fields= ['title','description','categories'] def create(self,validated_data): title = validated_data['title'] description = validated_data['description'] categories = validated_data['categories'] user = self.context['request'].user if (title and description): post_obj = Post.objects.create( title=title, description=description, created_by=user, categories=categories) return validated_data This is my views class CreatePostAPIView(APIView): permisssion_classes = (IsAuthenticated,) def post(self,request,*args,**kwargs): user = request.user data = request.data serializer = CreatePostSerializer(data=data, context={'request': request}) if serializer.is_valid(): serializer.save() return Response({'success' :'True','message' : 'Post created successfully','data' : serializer.data},status=200) return Response(serializer.errors,status=400) When I try to hit the API endpoint then it gives me the following error: Direct assignment to the forward side of a many-to-many set is prohibited. Use categories.set() instead Please feel free to ask me anything. Any help please, Would be very appreciated. -
NoReverseMatch at /news/python-is-cool/
im new and i need your help, can anyone tell me what i did wrong? Reverse for 'post_detail' with keyword arguments '{'slug': 'python-is-cool'}' not found. 1 pattern(s) tried: ['(?P<category_slug>[-a-zA-Z0-9_]+)/(?P[-a-zA-Z0-9_]+)/\Z'] -
Django Excell structure
I need to make an webapp that is based on excell. There should be two kind of groups one for the user which can edit and view data and one for staff which can also create data to work for the user. Each of them have restricted view, user should only see their data while staff should see everything what every user had done or other staff member changed. I cant wrap my head around about those restrictions. my login is like that class Einloggen(LoginView): template_name = 'SCHUK/Einloggen.html' fields ='__all__' redirect_authenticated_user = True def get_success_url(self): if self.request.user.groups.filter(name='Personalverwaltung').exists(): return reverse('Dashboard') else: return reverse('Schulverzeichnis', args=[self.request.user.pk]) but when it comes to display data for the staff, there I hit a wall. class Dashboard (LoginRequiredMixin, ListView): model = SchulverzeichnisTabelle template_name = 'SCHUK/Dashboard.html' context_object_name = 'Dashboard' def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context['Schulverzeichnis'] = SchulverzeichnisTabelle.objects.all() return context while I can list everything with Foreignkeys the data that staff creates is not listed bc a foreignkey only show one entry when I use a mtm field I get this in my template <QuerySet []> reading docs and all you cant read individual entries from a mtm only what mtm has stored How can I show each … -
Python Django - Select Choice is not Valid
When i want to save the form on a new CharFields (with Choices), Django tell me that the Selec choice is not valid. I take another Choice list which work with another models, it's work normally. Models.py: class productsdefinition(models.Model): Products = models.CharField(max_length=Lenght200, default='NA') Status = models.CharField(max_length=Lenght10, choices=Utilities_CSP.PRODENG_CHOICES) Tester = models.ForeignKey(tester, on_delete=models.CASCADE, null=True) Board = models.ForeignKey(board, on_delete=models.CASCADE, null=True) TestProgram = models.CharField(max_length=Lenght200, default='') ProgramLoad = models.ForeignKey(ProgramLoad, on_delete=models.CASCADE, null=True) ListProgramEG = Utilities_CSP.ExtractProgEG() Probecard = models.CharField(verbose_name='Probe Card',max_length=Lenght200, choices=ListProgramEG, null=True) ProgramEG = models.CharField(verbose_name='Program EG',max_length=Lenght200, choices=ListProgramEG, null=True) forms.py: class ProducDefForm(forms.ModelForm): global tempfield i = 0 tempfield = [] for var in list(vars(productsdefinition()).keys()): if i <= 1: pass elif var == "Date_added": pass elif var == "LastModified": pass elif var.find("_id") != -1: var = var.replace("_id","") tempfield.append(str(var)) else: tempfield.append(str(var)) i = i + 1 class Meta: model = productsdefinition fields = tempfield def __init__ (self, *args, **kwargs): super(ProducDefForm, self).__init__(*args, **kwargs) ListProbecard = Utilities_CSP.ExtractProgEG() self.fields['Probecard'].choices = ListProbecard So my field ProgramEG work fine, when i try to put the list (of choice) to ensure that the field Probecard work, it don't work, it tell me "Select Choice in not valid,...." Do you have any idea where can be the erorr ? In the Table of the DB ? -
Django argument type not iterable?
My models.py: from django.db import models # Create your models here. class Day(models.Model): title = models.CharField(max_length=120) items = models.ManyToManyField('Excercise',related_name='days') def __str__(self): return self.title class Excercise(models.Model): name = models.CharField(max_length=200) reps = models.IntegerField(default=0) sets = models.IntegerField(default=0) def __str__(self): return self.name My serialisers.py class ExcerciseSerializer(serializers.ModelSerializer): class Meta: model = Excercise fields = '__all__' class DaySerializer(serializers.ModelSerializer): class Meta: model = Day fields = '__all__' my views.py : class ExcerciseView(ObjectMultipleModelAPIView, viewsets.ModelViewSet): serializer_class = ExcerciseSerializer def get_querylist(self,*args,**kwargs): querylist = Excercise.objects.filter() return querylist class DayView(ObjectMultipleModelAPIView, viewsets.ModelViewSet): serializer_class = DaySerializer def get_querylist(self,*args,**kwargs): querylist = Day.objects.filter() return querylist my urls.py router = DefaultRouter() router.register('Excercise',ExcerciseView,basename='Excercise') router.register('Day',DayView,basename='Day') urlpatterns = [ path('admin/', admin.site.urls), path('', include(router.urls)),] Please try to make it simple I am just starting out learning django so its a bit confusing It displays the error File "C:\Users\User\AppData\Local\Programs\Python\Python39\lib\site-packages\drf_multiple_model\mixins.py", line 37, in check_query_data if key not in query_data: TypeError: argument of type 'Excercise' is not iterable. -
How to change the database name display in django admin site?
How to change the admin name and the database name in django admin site? -
Django Rest Framwork validate ListSerializer field from data received by form-data request
I am using Django and DRF to handle a restful backend. A request is sent that contains some fields and data (attached images). The request is received by a DRF serializer. I sent the request using form-data (via Postman). I received all fields and images properly except for a ListSerializer. The field is: class ListSerializerClass(serializers.Serializer): field_1 = serializers.IntegerField() field_2 = serializers.ListField(child=serializers.IntegerField(), min_length=1) class MainSerializerClass(serializers.Serializer): list_serialized_field = InputOfficeTaskTypeMap(many=True) normal_field = serializers.CharField(max_length=50) normal_field = serializers.CharField(max_length=50) Using Postman I send a list_serialized_field as a json: {"code": 123, "list_serialized_field": [{"field_1": 1, "field_2": [1,2]}, {"field_1": 2, "field_2": [2]}] Unfortunately, I could not received validated list_serialized_field and after calling serializer.is_valid, I got error that "list_serialized_field" is required. Is there any way to send json data and files in one request and validate them? P.S: I know that I can send form-data like below: list_serialized_field[0]field_2[0] but I want to send them in JSON format. -
Db error when cloning repository from github
I cloned the repository from github, activated the environment, but when I wrote the migration, appeared error. I tried fix her many times, but nothing worked. return Database.Cursor.execute(self, query, params) django.db.utils.OperationalError: no such table: api_secret models.py import datetime as dt import pgcrypto from django.db import models LIFE_TIME = ( #some code ) DATE_NOW = dt.datetime.now() TIME_OF_DEATH = { "1": (DATE_NOW + dt.timedelta(days=7)), "2": (DATE_NOW + dt.timedelta(days=3)), "3": (DATE_NOW + dt.timedelta(days=1)), "4": (DATE_NOW + dt.timedelta(hours=1)), "5": (DATE_NOW + dt.timedelta(minutes=30)), "6": (DATE_NOW + dt.timedelta(minutes=5)), } class Secret(models.Model): """The secret model contains all the information about the secret and its data""" secret = pgcrypto.EncryptedCharField("Secret", max_length=100000) key_word = pgcrypto.EncryptedCharField("Pass phrase", max_length=100) is_viewed = models.CharField("Already viewed", max_length=100) slug = models.CharField("Slug", max_length=20, unique=True) lifetime = models.PositiveIntegerField( verbose_name="Lifetime", null=True, blank=True, ) time_of_death = models.DateTimeField( "Secret end time", null=True, blank=True ) created_date = models.DateTimeField("Created date", auto_now_add=True) -
Trying to connect Django to MySQL. Connection error when migrating
I've been working for several weeks on Django. So far I have made 2 small projects. Now I tried to connect Django to the MySQL database. First, I started a new project. Then made a new app and updated the app in settings.py After that changed the database in the same file settings.py with my settings, Made a small model, Installed all the necessary aps, MySQLclient etc, Made the first migration successfully with 'Makemigration' So far so good! Next, I tried to make the second migration, as in the instructions. Then the error message appears: 'error 111, can't connect to database' Made some changes in the settings file, including SQL mode 'strict trans tables'. Now it shows me the error: Can't connect to local MySQL server through socket ... Missing file .sock. I looked up the directory and there was no such file. In the my.conf file the file is different!!! And exists! What is going on and what to do? -
How to legally protect myself from illegal files?
I understand this might not be the forum to ask this question but I'm trying to protect myself and other website users from illegal videos or files. I am doing a website and how do I check if the uploaded file contains any illegal stuff or adult content. Is there any API or service that does this. Also, how do I legally protect myself? Do I need to write something in the privacy policy and what sort of information do I need to collect from the users that upload files, is IP address enough or do I need email addresses as well? -
Create django project
I am new to programming I want to create django application in which user uploads a recipe. And for recipe they select the ingrident from the list and give the quantity of the ingrident. They should give multiple ingrident with quantity of every ingrident and a recipe name . And I also want to display the recipe with details -
This is the error that I am gettig TypeError: unhashable type: 'list'
What I want to do is, I want to create an endpoint through which I can upload a csv file with dataframes and I want to display these dataframes on my custom html format. But I am getting the error while sending file data from backend to frontend. Code def upload_files(request): form = UploadFileForm(request.POST or None, request.FILES or None) if form.is_valid(): csvfile = request.FILES['file_name'] data = pd.read_csv(csvfile.name) json_record = data.reset_index().to_json(orient='records') arr = [] arr = json.loads(json_record) context = {'d', arr} return render(request, 'upload.html', context) return render(request, 'record.html', {'form': form}) Error context = {'d', arr} TypeError: unhashable type: 'list' -
How to manage CORS in Django
Im trying to connect React.js[axios] and Django [hosting in Heroku] and every time I get this Ive allowed my host to connect but it doesn't work CORS_ALLOW_ORIGINS = [ 'localhost', 'https://itbookcom.herokuapp.com/' ] CSRF_TRUSTED_ORIGINS = [ 'localhost', 'https://itbookcom.herokuapp.com/' ] and here is react.js connection part constructor(props) { super(props); this.state = { bookList: [], error: null, }; } refreshList = () => { axios .get('https://itbookcombackend.herokuapp.com/api/books/') .then((res) => this.setState({ bookList: res.data })) .catch((err) => console.log(err)); }; componentDidMount() { this.refreshList(); } -
Parsing array of objects to Django backend from Ajax request
I have some data that I am gathering using JavaScript which I and trying to parse to my Django backend using an Ajax request. However the array is very different when console logging in the JavaScript and printing out in the python back end. JavaScript: function confirm_add_all_product(e) { let data_products = [] let table = e.closest("thead").nextElementSibling.childNodes table.forEach(function(i) { let row = {} row.record_id = (i.children[7].children[1].firstChild.getAttribute('data-record-id')) row.product_id = (i.children[7].children[1].firstChild.getAttribute('data-product-id')) row.foil = (i.children[2].textContent) row.condition = (i.children[3].textContent) row.language = (i.children[4].textContent) row.quantity = (i.children[7].children[0].value) data_products.push(row) }); console.log(data_products) $.ajax({ url: "/integrations/card/inventory_update_all/", type: "POST", data: { csrfmiddlewaretoken: csrf_token, data_products: data_products, }, success: function (response) {}, error: function (request, status, error) { console.log(error); } }); } Python: @login_required def inventory_update_all(request): print(request.POST) return HttpResponse(status=200) JS Console Log: [ { "record_id": "", "product_id": "", "foil": "false", "condition": "nm", "language": "eng", "quantity": "1" }, { "record_id": "", "product_id": "", "foil": "false", "condition": "nm", "language": "eng", "quantity": "2" } ] Current Python Print: <QueryDict: {'csrfmiddlewaretoken': [''], 'data_products[0][record_id]': [''], 'data_products[0][product_id]': [''], 'data_products[0][foil]': ['false'], 'data_products[0][condition]': ['nm'], 'data_products[0][language]': ['eng'], 'data_products[0][quantity]': ['1'], 'data_products[1][record_id]': [''], 'data_products[1][product_id]': [''], 'data_products[1][foil]': ['false'], 'data_products[1][condition]': ['nm'], 'data_products[1][language]': ['eng'], 'data_products[1][quantity]': ['2']}> Expected Python Print: <QueryDict: {'csrfmiddlewaretoken': [''], 'data_products': {['record_id': '', 'product_id': '', 'foil': 'false', 'condition': 'nm', 'language': 'eng', 'quantity': '1'],['record_id': '', 'product_id': … -
Django folder structure for created file, static? media? or another one?
I want to create the file(.wav) by django and let it be downloaded by user. Currently I create the file under /myproj/static directory. However it is mixed with the other jpg/img files, so,, it's not good design? then, I read the document about /myproj/media directory but it is said used for user upload files. So,,, how is the good directory design for server created file? Should I create such as /myproj/create_wav? but how can user access this url in template? Thank you for any idea or helps. -
Not getting the profile image from html form but other datas are getting
this is the profile model class Profile(models.Model): user=models.ForeignKey(User,on_delete=models.CASCADE) id_user=models.IntegerField() bio=models.TextField(blank=True) profileimg=models.ImageField(upload_to='profile_images',default='defaultdp.png') location=models.CharField(max_length=100,blank=True) def __str__(self): return self.user.username this is the html form <form action="" method="POST" enctype="multipart/form-data"> {%csrf_token%} <div class="col-span-2"> <label for=""> Profile Picture</label> <img height="100" width="100" src="{{user_profile.profileimg.url}}"> <input type="file" name="profileimg" placeholder="" class="shadow-none bg-gray-100"> </div> <form> this is views.py @login_required(login_url='signin') def settings(request): user_profile=Profile.objects.get(user=request.user) if request.method == 'POST': if request.FILES.get('image')==None: image=user_profile.profileimg bio=request.POST ['bio'] location=request.POST['location'] user_profile.profileimg=image user_profile.bio=bio user_profile.location=location user_profile.save() if request.FILES.get('image')!=None: image=request.FILES.get('image') bio=request.POST ['bio'] location=request.POST['location'] user_profile.profileimg=image user_profile.bio=bio user_profile.location=location user_profile.save() return redirect('settings') return render(request,'setting.html',{'user_profile': user_profile}) the profile image which I am getting is the defaultdp.png which is the default pic if no file is getting uploaded. I think the file i am uploading is not getting saved on the database or I dont know what is happening here. could anyone please help me to sort it out..? If I am missing any kind of code snippet here for debugging kindly mention it.I will edit the question with the mentioned code. -
Django - No module named 'mywebsite'
I have a django app that I downloaded from a Github repo where the main app is not called "mywebsite" (like instructed in the django tutorial). Everytime I run python manage.py runserver i get the following error. Conceptually I understand the error, but practically I don't. The issue can't be that I have always need to name my repo "mywebsite" right? This is the current repo structure. Traceback (most recent call last): File "/Users/nicolamacchitella/Documents/GitHub/familytree/.env/lib/python3.9/site-packages/django/core/management/base.py", line 402, in run_from_argv self.execute(*args, **cmd_options) File "/Users/nicolamacchitella/Documents/GitHub/familytree/.env/lib/python3.9/site-packages/django/core/management/commands/runserver.py", line 74, in execute super().execute(*args, **options) File "/Users/nicolamacchitella/Documents/GitHub/familytree/.env/lib/python3.9/site-packages/django/core/management/base.py", line 448, in execute output = self.handle(*args, **options) File "/Users/nicolamacchitella/Documents/GitHub/familytree/.env/lib/python3.9/site-packages/django/core/management/commands/runserver.py", line 81, in handle if not settings.DEBUG and not settings.ALLOWED_HOSTS: File "/Users/nicolamacchitella/Documents/GitHub/familytree/.env/lib/python3.9/site-packages/django/conf/__init__.py", line 92, in __getattr__ self._setup(name) File "/Users/nicolamacchitella/Documents/GitHub/familytree/.env/lib/python3.9/site-packages/django/conf/__init__.py", line 79, in _setup self._wrapped = Settings(settings_module) File "/Users/nicolamacchitella/Documents/GitHub/familytree/.env/lib/python3.9/site-packages/django/conf/__init__.py", line 190, in __init__ mod = importlib.import_module(self.SETTINGS_MODULE) File "/opt/homebrew/Cellar/python@3.9/3.9.7_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/importlib/__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1030, in _gcd_import File "<frozen importlib._bootstrap>", line 1007, in _find_and_load File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed File "<frozen importlib._bootstrap>", line 1030, in _gcd_import File "<frozen importlib._bootstrap>", line 1007, in _find_and_load File "<frozen importlib._bootstrap>", line 984, in _find_and_load_unlocked ModuleNotFoundError: No module named 'mywebsite' During … -
Should i allow user to use the admin panel to upload his blog?
I'm building an app for someone, one of its function is it allowers the owner to upload blogs to the website. So i'm wondering if i should create a page for uploading blog or just give him staff permission so he can create and upload it through django's admin panel. I want to know if this is safe or if it will be worth it to create a front-end template for just one person to use. -
WooCommerce webhooks with Django Rest Framework
I am trying to integrate WooCommerce webhooks with Django but without success. I found a solution to a similar issue, but still cant make it work. The thing is that, Woocomerce is generating this secret key automatically. I guess that I have to hard code it by myself in the admin panel ? Also about the code bellow(solution found in the web), Django is complaining that request has no property payload. I guess that it must be data ? mport base64 import hashlib import hmac request_sig = request.headers.get("x-wc-webhook-signature") signature = hmac.new(<your_secret_key>.encode(), request.payload, hashlib.sha256).digest() if hmac.compare_digest( request_sig.encode(), base64.b64encode(signature) ): return True return False enter code here -
django taggit self.tags.add() in not working in django
I am using djagno-taggit. I want to add other fields data automatically when I save the data table. models.py class resource(models.Model): title=models.CharField(max_length=100) size=models.CharField( max_length=20, default="") desc=models.TextField(default="") file=models.FileField(default="", blank=True) url= models.URLField(max_length=200, blank=True) varient=models.CharField(max_length=100, default="") Brand = models.ForeignKey(brand,on_delete=models.CASCADE, default="") Model = models.ForeignKey(model,on_delete=models.CASCADE, default="") Categories = models.ForeignKey(category,on_delete=models.CASCADE, default="") update_at=models.DateField(auto_now=True) slug=models.SlugField(default="", unique=True, blank=True) tags_char=models.TextField( blank=True) Tags = TaggableManager(blank=True) def save(self, *args, **kwargs): getlast=resource.objects.all().last() getid=getlast.id print(getid) newid=int(getid)+1 if not self.pk: self.pk=newid self.tags_char= self.desc+","+self.size ans=[self.title ,self.desc,self.size] self.Tags.add(*ans) print(self.Tags.all()) for tag in self.tags_char.split(','): print(tag) super(resource, self).save(*args, **kwargs) Here first I get pk for current data and try to save list that has the same data fields in the Tags fields. It works well when I Print Tagsafter adding and get the below result in my terminal when I print(self.Tags.all()) result in the terminal is: <QuerySet [<Tag: tagSize>, <Tag: tagTitle>, <Tag: tagDescription>]> But when I open it in the admin models data table then I got Tags fields empty!! Any solution?? -
4 products on the same line in the template
I'm developing an e-commerce with Django. My backend is fine, my problem is with the template. Currently, I want to display 4 products per row, and if there are 7 products, the other 3 must be aligned with the top one. I'm using bootstrap to do this, however, for some reason I don't know, it doesn't have 4 products on the same line, even with space. I'm using a container with 1200px. home.html <div class="container"> <div class="row"> <div class="col-lg-8"> <div class="row"> {% for product in products %} <div class="card mb-4 border rounded" style="width: 13.5rem;"> <a href="{{ product.get_absolute_url }}"> {%if product.image %} <img class="img-produto" src='/media/{{product.image}}' class="card-img-top hover_img "> {% else%} <img class="img-produto" src="{% static '/img/not-found-product.jpg' %}" class="card-img-top hover_img"> {%endif%} </a> <div class="card-body"> <p class="card-title">{{product.name}}</p> <p class="card-text"><i class='fas fa-dollar-sign' style="margin-right:2px"></i>{{product.price}}</p> </div> </div> {% endfor %} </div> </div> </div> </div> base.css @media (min-width: 900px){ .container{ max-width: 1100px; } } -
i could not run my django project which has been cloned from git why
Exception in thread django-main-thread: django.core.exceptions.ImproperlyConfigured: WSGI application `enter code here`'vivawalleetintegration.wsgi' could not be loaded; Error importing module#