Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
Attribute Error when Running Django Rest API
I have created a simple project called djangowallet and inside that project, I have created an app called wallet with a model wallet and just one field called raddress. I have created the serializer, views and URLs and when I runserver it gives the following error. PS C:\Users\Ahmed\djangowallet> 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\Ahmed\AppData\Local\Programs\Python\Python310\lib\threading.py", line 1009, in _bootstrap_inner self.run() File "C:\Users\Ahmed\AppData\Local\Programs\Python\Python310\lib\threading.py", line 946, in run self._target(*self._args, **self._kwargs) File "C:\Users\Ahmed\AppData\Local\Programs\Python\Python310\lib\site-packages\django\utils\autoreload.py", line 64, in wrapper fn(*args, **kwargs) File "C:\Users\Ahmed\AppData\Local\Programs\Python\Python310\lib\site-packages\django\core\management\commands\runserver.py", line 124, in inner_run self.check(display_num_errors=True) File "C:\Users\Ahmed\AppData\Local\Programs\Python\Python310\lib\site-packages\django\core\management\base.py", line 438, in check all_issues = checks.run_checks( File "C:\Users\Ahmed\AppData\Local\Programs\Python\Python310\lib\site-packages\django\core\checks\registry.py", line 77, in run_checks new_errors = check(app_configs=app_configs, databases=databases) File "C:\Users\Ahmed\AppData\Local\Programs\Python\Python310\lib\site-packages\django\core\checks\urls.py", line 13, in check_url_config return check_resolver(resolver) File "C:\Users\Ahmed\AppData\Local\Programs\Python\Python310\lib\site-packages\django\core\checks\urls.py", line 23, in check_resolver return check_method() File "C:\Users\Ahmed\AppData\Local\Programs\Python\Python310\lib\site-packages\django\urls\resolvers.py", line 448, in check for pattern in self.url_patterns: File "C:\Users\Ahmed\AppData\Local\Programs\Python\Python310\lib\site-packages\django\utils\functional.py", line 48, in __get__ res = instance.__dict__[self.name] = self.func(instance) File "C:\Users\Ahmed\AppData\Local\Programs\Python\Python310\lib\site-packages\django\urls\resolvers.py", line 634, in url_patterns patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module) File "C:\Users\Ahmed\AppData\Local\Programs\Python\Python310\lib\site-packages\django\utils\functional.py", line 48, in __get__ res = instance.__dict__[self.name] = self.func(instance) File "C:\Users\Ahmed\AppData\Local\Programs\Python\Python310\lib\site-packages\django\urls\resolvers.py", line 627, in urlconf_module return import_module(self.urlconf_name) File "C:\Users\Ahmed\AppData\Local\Programs\Python\Python310\lib\importlib\__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1050, … -
How can we send bulk_email in django using different from_emails?
I have 1 Django app and i want to send bulk_email to multiple users, so normally it will send from only 1 from_email. Now how can I send bulk_email from different from_email when I select 1 email from the dropdown list? -
How to mock instance attribute of django form
I'm doing a unit test where I'm mocking a Django form, but I'm having some trouble because I need to mock two things from the form: An instance attribute (token) A method (is_valid) I'm using the form in a view, importing it like this: from profiles.forms import PaymentForm And I have tried the following to mock it: @patch('profiles.forms.PaymentForm') def test_when_processing_a_payment_then_the_event_is_tracked(self, payment_form_class): payment_form_class.is_valid.return_value = True payment_form_class.cleaned_data = {'token': 1} This approach does not work, is_valid returns false. @patch('profiles.forms.PaymentForm') def test_when_processing_a_payment_then_the_event_is_tracked(self, payment_form_class): payment_form_class.return_value.is_valid = True payment_form_class.return_value.cleaned_data = {'token': 1} This neither. I'm using Django and unittest. I have successfully mocked the is_valid with a helper function of our code base, but it does not seem to work with instance attributes. Any idea how to solve this? -
Calculate age from date of birth using django orm query
I am calculating age using python code like age = datetime.date.today().year - patient_table.dob.year - ((datetime.date.today().month, datetime.date.today().day) < (patient_table.dob.month, patient_table.dob.day)) i return correct age. but i need this result using Django orm query how i can do this? i tried like, PatientTable.objects.filter(is_active=True,is_deleted=False).annotate(age=datetime.date.today().year - F('dob__year')) but it getting wrong age. -
How can I loop salary amount against each employees?
I want my python to print the name of employees one by one (in a loop) and let me add the salary amount against each employee and in the last create a dictionary (key-value) for me, the key is employee name and value is amount and I also want to print out the total amount of salary means the sum of all the salaries. How can I do that That is what I did so far: employees = ["abc", "def", "ghi", "jkl", "mno", "pqr"] n=0 amonut= 0 try: for employee in employees: employee = employees[n] amount= int(input(amount)) total = sum(amount) n=n+1 print(total) except: print("You can only type integer for amount") I have no idea how to create a dictionary in the last -
Django filter search with dropdown
In Django, while taking entry from the user, I have created a dropdown from which user can select the field, but that dropdown can be longer. What I want is, it should also contain a filter search box where the user will enter the keyword and the fields related to that keyword will appear in front. Here is the screenshot of the current UI:- This is the code for selecting the "Annual Work Plan":- <div id="div_Select_Annual_Work_Plan" class="form-group col-md-4"> {{ form.Select_Annual_Work_Plan.label_tag }} {{ form.Select_Annual_Work_Plan }} {{ form.Select_Annual_Work_Plan.errors }} {% if form.Select_Annual_Work_Plan.help_text %} <p class="help">{{ form.Select_Annual_Work_Plan.help_text }}</p> {% endif %} </div> Inside forms.py, the field for "select annual work plan" is described as follows:- Select_Annual_Work_Plan = forms.ModelChoiceField(queryset=annual_work_plan.objects.none().order_by("Annual_Work_Plan_ID"), label='Select Annual Work Plan', ) Please let me know, in case any other piece of code is needed. I am new to Django and didn't find any solution on the internet. -
I cannot search a field when i added a serializermethod in documentviewset
class VariantSerializers(DocumentSerializer): uom = serializers.SerializerMethodField('get_uom') def get_uom(request,obj): if obj.uom_id is not None: uomData = Uom.objects.filter(code=obj.uom_id).first() if uomData is None: return obj.uom_id return uomData.name class Meta: model = Variant document = VariantDoc fields = '__all__' Here i added a serializermethod and here i cannot search with uom name but it's not working -
how to redirect from a function to a url using name attribute + "?next=next_path" in django redirect?
view.py def register(request): next_cart_page = request.GET.get('next', '') if request.method == 'POST': status = logic.register_logic(request) if next_cart_page == 'cart': return redirect("/u/o/?next="+ next_cart_page) <- instead of "/u/o/" how can i use "verify_otp_user" else: return redirect("verify_otp_user") main.js $('.checkout_login_required').click(function(){ $('#register_user_link').attr('href', function(i, val){ return val + '?next=cart' }) }); using javascript i'm passing a value to the next key to an anchor tag. then on views.py i'm checking for that value in an if statement and based on that i'm redirecting to the next page with or without the next value in else statement i'm using path name attribute to redirect to a url how can i do the same in if statement as well while concatinating path name attribute(like verify_otp_user) with "?next=" + next_cart_page something like redirect("verify_otp_user" + "?next=" + next_cart_page), but this is not working . Any alternate solution if available ? Note: verify_otp_user does not have any parameter in its url its simply /u/o/ -
how to save multiple products in a single run
i have this issue trying to save de Order(detalle products) from my Sale, i don't know how to do it class Sale(models.Model): sale_id = models.IntegerField(primary_key=True) cli = models.ForeignKey(Clientes ,on_delete=models.CASCADE,null=True) date_joined = models.DateField(default=datetime.now) subtotal = models.DecimalField(default=0.00, max_digits=9, decimal_places=2) iva = models.DecimalField(default=0.00, max_digits=9, decimal_places=2) total = models.DecimalField(default=0.00, max_digits=9, decimal_places=2) class Order (models.Model): order_id = models.AutoField(primary_key=True) orden = models.IntegerField() sale_id = models.ForeignKey(Sale ,on_delete=models.CASCADE,null=True) codigo_producto = models.IntegerField() precio = models.IntegerField() cantidad = models.IntegerField() above you can see my to models and here is how i called in my views def mod_venta(request,orden_actual=0): if request.session.get("codigo_usuario"): listaorder=Order.objects.all() listatabla=producto.objects.all() listacliente=Clientes.objects.all() if request.method=="GET": return validar(request, "venta.html",{"listaorder":listaorder,"listacliente":listacliente,"listatabla":listatabla}) if request.method=="POST": if orden_actual==0: venta_nueva=Order(order_id=request.POST.get('orden_actual'), codigo_producto=request.POST.get('codigo'), precio=request.POST.get('precio'), cantidad=request.POST.get('canti')) venta_nueva.save() return redirect("../venta/0") else: return redirect("login") and only try to save with a form, only saving one element in the "OrderDetalle", (i only work with for a month ) so I wanted to know how I could do to bring all the sales data in orders -
Error get static file from another project
I'm on Network project but when I runserver this project, it get static file from my another project is Mail, static file in Network project still work ok, but it appear error in my Terminal and I don't know how to solve it ! Network |-static |-network |-style.css |-index.js [21/Feb/2022 12:22:48] ←[33m"GET /static/mail/inbox.js HTTP/1.1" 404 1667←[0m setting.py STATIC_URL = '/static/' -
Import the csv data to database and update the existing data using their id in django
I want to update some existing data by uploading the CSV file. I have some data in the MySQL database and some of them have spelling mistakes and some others mistakes. So I have correct data on the CSV file and I want to upload it and update existing data on the database. Below code for importing data into the database. So how can I modify this code to update the existing data of the database? views.py # Import the data to database def import_countries(request): with open('C:/python/Azuro/azuro_django/pms/templates/pms/countryname.csv') as csvfile: reader = csv.DictReader(csvfile) for row in reader: data = Country(currency=row['Currency'], name=row['Country']) data.save() return HttpResponse('Data Uploaded!!') Thanks! -
Django rest framework API key is not able to authenticate when using custom models
I am using rest_framework_api_key for authenticating services those use our API, I have following versions of Django, Rest framework and rest_framework_api_key Django==3.2.12 djangorestframework==3.13.1 djangorestframework-api-key==2.1.0 My Installed Apps in settings.py INSTALLED_APPS = [ 'django_extensions', 'django_elasticsearch_dsl', 'drf_yasg', 'media_fetchers', 'api_registration', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'rest_framework', 'rest_framework_api_key', 'corsheaders', 'admin_panel', 'accounts', ] Default Permissions classes REST_FRAMEWORK = { 'DEFAULT_PERMISSION_CLASSES': [ 'rest_framework_api_key.permissions.HasAPIKey', 'rest_framework.permissions.IsAuthenticated', ], 'DEFAULT_AUTHENTICATION_CLASSES': [ 'rest_framework_simplejwt.authentication.JWTAuthentication', ], "TEST_REQUEST_DEFAULT_FORMAT": "json", "DEFAULT_PAGINATION_CLASS": "rest_framework.pagination.LimitOffsetPagination", "PAGE_SIZE": 20, } My Models for using APIKey model class Service(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE, related_name="service") name = models.CharField(max_length=128) active = models.BooleanField(default=True) class ServiceAPIKey(AbstractAPIKey): organization = models.ForeignKey( Service, on_delete=models.CASCADE, related_name="api_keys", ) So I have created an API in which permission_classes = [HasAPIKey] which is not authenticating and it gives the response authentication credentials were not provided. I passed the API key in postman in headers just like it was mentioned in the official docs Django rest API key The twist is when I remove the models and use their APIKey model as it is, it does authenticate with HasAPIKey... Anything I am doing wrong? I also read all the issues in their github, no one seems to have the same problem as mine, but people are having issues while using modelviewsets api. -
Create table on Reportlab the next row display above
I am new to reportlab for creating PDF and very confuse about x,y coordinate. When create the table on canvas, the second row insert above the first row instead. So, the data on table is overlap with above. How to fix it. Thank you advance. .. 4th 3rd row 2nd row 1st row -
Django-Streamlit integration
Can I integrate Streamlit with Django ? I tried but didn't know what to render ? I used the this code inside the django app -
Django filter two levels of DB relationships
I have three models that I'm trying to hook up so I can pull-out StudentItem information based upon ID of the Course that was passed in. The models look like the following: class Student(models.Model): first_name = models.CharField(max_length=128, unique=False) last_name = models.CharField(max_length=128, unique=False) class Course(models.Model): name = models.CharField(max_length=256, unique=False) course_student = models.ManyToManyField(Student) class StudentItem(models.Model): item_student = models.ForeignKey('Student',on_delete=models.CASCADE) description = models.CharField(max_length=256, unique=False, blank=True) Right now, my view looks like: class CourseDetailView(LoginRequiredMixin,DetailView): model = models.Course def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context['student_item_list'] = StudentItem.objects.prefetch_related(Prefetch('item_student__id__course_student',queryset=Course.objects.filter(pk=self.kwargs['pk']))) return context I can get everything connected via prefetch across all of the models but the queryset filtering is not working. I am getting all records for every course regardless of the course ID that was passed in. Hopefully it's a small tweak. Really appreciate the help! -
customize signing key in drf-simplejwt
I want to customize the signing key to include tenant information. Right now the token generated is valid for all the tenants. This question has been already asked before but it is for flask and jwt-extended here. Is there anyway to do the same functionality in drf-simplejwt? SIMPLE_JWT = { ... 'SIGNING_KEY': SECRET_KEY, ... } In the documentation, they have provided that in the settings we can change it, but i want to change it based on the incoming request where i can get the tenant info in the url. If this is not the right approach please suggest if there is any other way to restrict jwt per tenant. -
How to check if an existing specific user (say techxhelp) is logged in and then logout that specific user in django?
I want to do something like this in views. This is not a perfect code. I am just giving an example of what is my requirement. def home(request): if request.user.techxhelp is_logged_in: logout(techxhelp) else: pass I tried searching Google and different sites but I found nothing. If anyone knows the solution, I shall be very thankful. -
Django: Set a dropdown form field to a value from the current detail view's Model
I have a little Django form that allows me to change the stage of an assessment. This is used by staff to keep the user and other staff members up to date on where they're at. Currently, I'm just loading the default option as what I have set as default in the model ("NEW"), I would prefer if this would instead select the option that the current model of the detail view page is actually set to, e.g. ("IN PROGRESS"). Screenshot below is what it currently displays. So if the stage is In Progress then on the page load, I would like this dropdown option to have already selected "In Progress". Is there any method either within the form widget settings, html template, or within Javascript to make this change? Forms.py class ChangeStageForm(ModelForm): class Meta: model = Assessment fields = ['assessment_stage', ] labels = { 'assessment_stage': _('Change Assessment Stage'), } Model Field with Choices ASSESSMENT_STAGE_CHOICES = [ ('NEW', 'New'), ('INPRO', 'In Progress'), ('WAIT', 'Waiting on Applicant'), ('CAN', 'Cancelled'), ('DEC', 'Declined'), ('COMP', 'Completed'), ] assessment_stage = models.CharField(max_length=21, choices=ASSESSMENT_STAGE_CHOICES, default='NEW') Template HTML Assessment Stage: {{ assessment.get_assessment_stage_display }} <form method="POST"> {% csrf_token %} {{ change_stage_form }} <button type="submit" name="change_stage" class="btn btn-success">Save</button> </form> -
*ModuleNotFoundError: No module named 'xhtml2pdf'*
I have a simple Django web site when I compile my code I can get this error: ModuleNotFoundError: No module named 'xhtml2pdf' -
Django Many to One + Dynamic Forms
I am working on defining the models for my Django web app, which is a quote generator. Each quote will contain N number of different measurements (driveway, sidewalk, porch, etc) that will be stored and then used to calculate the total price per service. Is there a way I can structure the models to implement DRY so I don't have to code out each element of a quote? Additionally, is there a way in Django forms to allow a variable number of Measurement for each quote? models.py class Quote(models.Model): quoteDate = models.DateTimeField(auto_now_add=True) customerLastName = models.CharField(max_length=80) customerFirstName = models.CharField(max_length=50) ServiceRep = models.ForeignKey( User, on_delete=models.SET_NULL) orderNumber = models.IntegerField() #varying number of Measurements here class Measurement(models.Model): name = models.CharField(max_length=250) description = models.CharField(max_length = 250) length = models.FloatField(blank=True, null=True) width = models.FloatField(blank=True, null=True) flat_fee = models.FloatField(blank=True, null=True) quote = models.ForeignKey(Quote, on_delete = models.SET_NULL) -
Requesting guidance on how to create a Django Admin with multi-tenancy support
I am requesting help to create a custom Django admin site for a multi-tenant B2B ecommerce platform. I am still new to Django and building SaaS like applications. Any help to understanding this will be highly appreciated. I would like this admin dashboard to be able: To create, update, manage each tenant user, where we can update and manage their storefront and their own users and products. Have each tenant have their own admin dashboard that only they have access to, where they can manage their own users and products. To have super admin capabilities to push changes to all tenants. Thank you! -
I am getting a MultiValueDictKeyError when I'm trying to post a multiple choice form field to database
I have a form setup that Is meant to supplement my main signup form by adding more data to the user database, It is a multiple choice form. Here is the specifics of the error I am getting. Environment: Request Method: POST Request URL: http://127.0.0.1:8000/register/more Django Version: 3.2.2 Python Version: 3.9.5 Installed Applications: ['django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'mainpage', 'register.apps.RegisterConfig'] Installed Middleware: ['django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware'] Traceback (most recent call last): File "C:\Users\david\AppData\Local\Programs\Python\Python39\lib\site-packages\django\utils\datastructures.py", line 76, in __getitem__ list_ = super().__getitem__(key) During handling of the above exception ('minfo'), another exception occurred: File "C:\Users\david\AppData\Local\Programs\Python\Python39\lib\site-packages\django\core\handlers\exception.py", line 47, in inner response = get_response(request) File "C:\Users\david\AppData\Local\Programs\Python\Python39\lib\site-packages\django\core\handlers\base.py", line 181, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "C:\Users\david\OneDrive\Desktop\Django\myapp\register\views.py", line 19, in moreinfo minfo = request.POST['minfo'] File "C:\Users\david\AppData\Local\Programs\Python\Python39\lib\site-packages\django\utils\datastructures.py", line 78, in __getitem__ raise MultiValueDictKeyError(key) Exception Type: MultiValueDictKeyError at /register/more It seems like it has something to do with a line in my views.py file, specifically: minfo = request.POST['minfo'] -
How can i change the location of the Django admin search-box?
enter image description here I want to move the search box and action box on the Django-admin page to the bottom of the page. I already found the Django-admin change_list.html file, but i don't know how to change it... How do I do it? -
How to split groupby fields when deriving queryset results in Django
[views.py] annotations = {} types = ('A', 'B') for type in types: annotations[type] = Count('id', filter=Q(type=type)) annotations[f'R_{type}'] = Count('id', filter=Q(type=type, is_recruiting='Recruiting')) annotations[f'N_{type}'] = Count('id', filter=Q(type=type, is_recruiting='Not yet recruiting'))) counts = Study.objects.filter(is_deleted=0) \ .values('teacher') .annotate(**annotations).values('teacher', *annotations.keys()) By grouping teachers, we got the count for each teacher. Here is the result: <QuerySet [ {'teacher': 'Helen', 'A': 1, 'R_A': 1, 'N_A': 0, 'B': 3, 'R_B': 2, 'N_B': 0}, {'teacher': 'Helen/Jennie', 'A': 0, 'R_A': 0, 'N_A': 0, 'B': 1, 'R_B': 0, 'N_B': 0}, {'teacher': 'Jennie', 'A': 0, 'R_A': 0, 'N_A': 0, 'B': 1, 'R_B': 0, 'N_B': 0}] > However, when grouping teachers, I want to split them based on "/" and add a count for each teacher to output the following results. <QuerySet [ {'teacher': 'Helen', 'A': 1, 'R_A': 1, 'N_A': 0, 'B': 4, 'R_B': 2, 'N_B': 0}, {'teacher': 'Jennie', 'A': 0, 'R_A': 0, 'N_A': 0, 'B': 2, 'R_B': 0, 'N_B': 0}] > However, splitting in values is not possible. If you have a workaround please help me. -
Using ASP.net PasswordHash in Django for authentication
I have a database created by someone using C# .Netframework and now I need to create API using Django and connect this API to the same database. But I can't compare PasswordHash created by .Net with CreateAsync function. I have already researched how CreateAsync works this was very helpful and I tried with Python to get the same hash, but I failed. Can someone help me? python code import base64 import hashlib PassHash = "AQAAAAEAACcQAAAAEJa4CYSXaNB9U7+mWQYqg1GcO/tWRlrvqvBwGWEl/0W7tNKcxTOVUjeBq8OoYWsCEA==" bytes = base64.b64decode(PassHash) salt=bytes[0x0E:0x1E] # bytes from 14 to 29 hash=bytes[0x1E:0x3D].hex() # bytes from 30 to 61 password = "hello world" #this pass in not real password = password.encode() password_hash = hashlib.pbkdf2_hmac("SHA256", salt,password,10000) print(password_hash.hex())