Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
Integrity Error - Foreign Key constraint failed when uploading image to data bank Django Imagefield
This is part of my class in models.py class Account(AbstractBaseUser): email=models.EmailField(verbose_name="Email", max_length=60, unique=True) nick_name=models.CharField(verbose_name="Nickname", max_length=20) null=True, profile_img=models.ImageField(upload_to=upload_location,null=True, blank=True, default=None) #necessary date_joined=models.DateTimeField(verbose_name="date joined", auto_now_add=True) last_login=models.DateTimeField(verbose_name="last login", auto_now_add=True) is_admin=models.BooleanField(default=False) is_active=models.BooleanField(default=True) is_staff=models.BooleanField(default=False) is_superviser=models.BooleanField(default=False) this is my receiver in models.py @receiver(post_save, sender=settings.AUTH_USER_MODEL) def post_save_compress_img(sender, instance, *args, **kwargs): if instance.profile_img: picture=Image.open(instance.profile_img.path) picture.save(instance.profile_img.path, optimize=True, quality=30) settings.py: AUTH_USER_MODEL = 'account.Account' whats wrong in here that I run into an integrity error? -
i get this error OperationalError at /admin/accounts/student/
hey guys i work withe django framework i had the error OperationalError i have to class with same fields class Student(models.Model): user = models.OneToOneField(User, null=True, blank=True, on_delete=models.CASCADE) id = models.AutoField(primary_key=True) First_Name = models.CharField('First Name', max_length=30, null=True, blank=True) Last_Name = models.CharField('Last Name', max_length=30, null=True, blank=True) ID_Number = models.CharField('Id Number', max_length=30, null=True, blank=True) Phone = PhoneNumberField('Phone',null=True) class Meta: verbose_name_plural = "Students" def __str__(self): return str(self.user) class Lecturer(models.Model): user = models.OneToOneField(User, null=True, blank=True, on_delete=models.CASCADE) id = models.AutoField(primary_key=True) First_Name = models.CharField('First Name', max_length=30, null=True, blank=True) Last_Name = models.CharField('Last Name', max_length=30, null=True, blank=True) ID_Number = models.CharField('Id Number', max_length=30, null=True, blank=True) Phone = PhoneNumberField('Phone',null=True) class Meta: verbose_name_plural = "Lecturers" def __str__(self): return str(self.user) and i add new field to my Student and also to Lecturer classes the field is Phone = PhoneNumberField('Phone',null=True) and yes i did the commands: python manage.py makemigrations python manage.py migrate after that i get prove that every thing is update: Operations to perform: Apply all migrations: HomePage, accounts, admin, auth, contenttypes, sessions Running migrations: No migrations to apply. but when i run the runserver and after the i go to the url http://localhost:8000/admin add i go the Lecturers data every things work great i have new field Phone but when i try … -
Django + EC2 + Apache giving SERVER ERROR 500
I've worked on a Django project locally and everything was working fine. I deployed it on EC2 Ubuntu instance alongwith Apache2 and it is giving a server error 500. I've tried with gunicorn+nginx as well, still no joy. So as a context, I'm using Django4, Python3, Apache2 alongwith; AWS RDS for postgres DB AWS S3 for static files (Both are working fine in dev and prod mode locally). I've also added my EC2 IP address to ALLOWED_HOSTS and still the same (also getting same error if I allowed everything by *). Note: I've all my credentials in .env file. Somehow the Django application isn't providing access. I actually want to get an SSL from CertBot and assign my purchased .dev domain. I'm actually stuck here for past couple of days, gone though several blogs but not able to get this resolved. Any suggestions would be of massive help. Thanks. my apache .conf file <VirtualHost *:80> ServerAdmin admin@admin.com ServerName <aws_public_ip_address> ServerAlias <aws_public_ip_address> DocumentRoot /home/ubuntu/liveProject/Django-Project ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined Alias /static /home/ubuntu/liveProject/Django-Project/static <Directory /home/ubuntu/liveProject/Django-Project/static> Require all granted </Directory> Alias /template /home/ubuntu/liveProject/Django-Project/tempate <Directory /home/ubuntu/liveProject/Django-Project/tempate> Require all granted </Directory> <Directory /home/ubuntu/liveProject/Django-Project/ProjectName> <Files wsgi.py> Require all granted </Files> </Directory> WSGIDaemonProcess Django-Project python-path=/home/ubuntu/liveProject/Django-Project python-home=/home/ubuntu/liveProject/liveEnv WSGIProcessGroup … -
Hi when i create contact us form in Django this integrity error shows
Here is the error screenshot My code is def contacts(request): if request.method == "POST": name = request.POST.get('name') email = request.POST.get('email') phone = request.POST.get('phone') desc = request.POST.get('desc') contact = Contact(name=name, email=email, phone=phone, desc=desc, date=datetime.today()) contact.save() return render(request, 'contacts.html') and my model code is from django.db import models Create your models here. class Contact(models.Model): name = models.CharField(max_length=122) email = models.CharField(max_length=122) phone = models.CharField(max_length=12) desc = models.TextField() date = models.DateField(auto_now_add=True) -
Understanding pytest-django test arguments
What are 'rf' and 'user_context' parameters and when are they assigned? import pytest from rest_framework import status from rest_framework.reverse import reverse from request_helper import pytest_request @pytest.mark.urls(urls='api.urls') @pytest.mark.django_db def test_user_name_check_200(rf, users_context): data = { 'username': 'test_jay_2' } url = reverse(viewname="users-check") response = pytest_request(rf, method='get', url=url, user=None, data=data) assert response.status_code == status.HTTP_200_OK Thanks in advance. -
heroku app push rejected, failed to compile python app, push failed
I'm trying to make a django website and ran into this problem,please tell me how to fix it, if you need more info please tell me,I also should mention, the old versions are loading but now I cant push any new versions to the site build log: -----> Building on the Heroku-20 stack -----> Using buildpack: heroku/python -----> Python app detected -----> Using Python version specified in runtime.txt ! Python has released a security update! Please consider upgrading to python-3.8.13 Learn More: https://devcenter.heroku.com/articles/python-runtimes -----> No change in requirements detected, installing from cache -----> Using cached install of python-3.8.12 -----> Installing pip 22.0.4, setuptools 60.10.0 and wheel 0.37.1 -----> Installing SQLite3 -----> Installing requirements with pip -----> $ python manage.py collectstatic --noinput Traceback (most recent call last): File "manage.py", line 22, in <module> main() File "manage.py", line 18, in main execute_from_command_line(sys.argv) File "/app/.heroku/python/lib/python3.8/site-packages/django/core/management/__init__.py", line 425, in execute_from_command_line utility.execute() File "/app/.heroku/python/lib/python3.8/site-packages/django/core/management/__init__.py", line 419, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/app/.heroku/python/lib/python3.8/site-packages/django/core/management/base.py", line 373, in run_from_argv self.execute(*args, **cmd_options) File "/app/.heroku/python/lib/python3.8/site-packages/django/core/management/base.py", line 414, in execute self.check(tags=self.requires_system_checks) File "/app/.heroku/python/lib/python3.8/site-packages/django/core/management/base.py", line 488, in check raise SystemCheckError(msg) django.core.management.base.SystemCheckError: SystemCheckError: System check identified some issues: ERRORS: ?: (staticfiles.E002) The STATICFILES_DIRS setting should not contain the STATIC_ROOT setting. ! Error while running … -
Should I authenticate DRF in that case in some way?
I made a react+django web app that is actually just a simple react form that sends data to django-rest-framework api view which saves form in database and sends an emails it to me. React app does not utilize any user system, anyone can send their form. Should I authenticate requests to DRF in some way? Also- when user types www.example.com/api/modelapi he can access the data- should i prevent this behaviour somehow? -
How to update User password in django
I'm having trouble when i try to update user password in django. def password(request): if request.method=="POST": password =request.user.password username=request.user.username c_password=request.POST["current_password"] new_password=request.POST["new_password"] r_new_password=request.POST["retype_new_password"] if password==c_password: if new_password==r_new_password: user =User.objects.get(username=username) user.set_password(new_password) user.save() messages.info(request,"Successfully saved") else: messages.info(request,"PASSWORD DOES NOT MATCH") else: messages.info(request,"PASSWORD INCORRECT") return render(request,"security.html") When i fill the current password, it is giving me error password incorrect. But, when i fill pbkdf2_sha256$320000$Cb4s4nwqKwirdgo50ZdjLH$aeuSP3X+dSZXsv0XJB0XxkpwfsmU+PedMX9Jl50Zark= , my password becomes correct and user password is updateable. My problem is I would like to fill in current password field as normal current password without getting the error. -
Display post to only user friends
When user login i want user to only see the post of friends with, I have a separate model for friends and a separate for post how do i filter post by users friends ? Here is my view def post_list(request): for user in Post.objects.all(): if request.user.is_authenticated: friend_list = FriendList.objects.get(user=request.user ) friends = friend_list.friends.all() context['friends'] = friends context['posts'] = Post.objects.prefetch_related('comments').filter(username=friends).order_by('-date_posted') return render(request,'feed/feed.html',context) Post model class Post(models.Model): username = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE) description = models.TextField(max_length=500, blank=True) date_posted = models.DateTimeField(auto_now_add=True) video = models.FileField(upload_to="videos",blank=True,null=True) tags = models.CharField(max_length=100, blank=True) views = models.ManyToManyField(settings.AUTH_USER_MODEL, related_name="view") shared_body = models.TextField(blank=True, null=True) shared_user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, null=True, blank=True, related_name='+') shared_on = models.DateTimeField(blank=True, null=True) -
How can I refactor this model in Django?
I want to refactor this model(code) from Django so that I can take as many inputs as required without writing a lot of code or efficiently. Or Can I use for loop in models? models.py class Sales(models.Model): customer = models.ForeignKey(Customer,on_delete=models.CASCADE) prescribed_doctor = models.CharField(blank=True,max_length=150) date_created = models.DateTimeField(default=timezone.now) sales_medicine_1 = models.ForeignKey(Medicines,related_name='sales_medicine',on_delete=models.CASCADE) Med_quantity_1 = models.IntegerField(blank=False,default=1) Free_quantity_1 = models.IntegerField(blank=True,default=0,null=True) margin_1 = models.PositiveIntegerField(blank=True,default=0,null=True) discount_1 = models.FloatField(choices=dis,default=0,null=True) discount_1_amt = models.FloatField(default=0,null=True) rate_1 = models.FloatField(blank=True,default=0,null=True) batch_no_1 = models.CharField(null=True,blank=True,max_length=50) mfg_1 = models.CharField(max_length=50,blank=True,null=True) expiry_1 = models.CharField(max_length=20,null=True,blank=True) sales_medicine_2 = models.ForeignKey(Medicines,blank=True,null=True,related_name='sales_medicine_1',on_delete=models.CASCADE) Med_quantity_2 = models.IntegerField(blank=True,default=0,null=True) Free_quantity_2 = models.IntegerField(blank=True,default=0,null=True) margin_2 = models.PositiveIntegerField(blank=True,default=0,null=True) discount_2 = models.FloatField(choices=dis,default=0,null=True) discount_2_amt = models.FloatField(default=0,null=True) rate_2 = models.FloatField(blank=True,default=0,null=True) batch_no_2 = models.CharField(null=True,blank=True,max_length=50) mfg_2 = models.CharField(max_length=50,blank=True,null=True) expiry_2 = models.CharField(max_length=20,null=True,blank=True) sales_medicine_3 = models.ForeignKey(Medicines,blank=True,null=True,related_name='sales_medicine_2',on_delete=models.CASCADE) Med_quantity_3 = models.IntegerField(blank=True,default=0,null=True) Free_quantity_3 = models.IntegerField(blank=True,default=0,null=True) margin_3 = models.PositiveIntegerField(blank=True,default=0,null=True) discount_3 = models.FloatField(choices=dis,default=0,null=True) discount_3_amt = models.FloatField(default=0,null=True) rate_3 = models.FloatField(blank=True,default=0,null=True) batch_no_3 = models.CharField(null=True,blank=True,max_length=50) mfg_3 = models.CharField(max_length=50,blank=True,null=True) expiry_3 = models.CharField(max_length=20,null=True,blank=True) Payment_status = models.CharField(max_length=15,choices=payment_status) Paid_amount = models.FloatField(blank=True,default=0,null=True) auto_generated = models.BooleanField(default=False) -
I want max duration_seconds of distinct character in elasticsearch
here is the query which I have write it was working fine in my kibana console but when I am trying this in Elasticsearch Head(chrome extension for Elasticsearch queries) and DSL library (Django library for elastic) it's not working. RAW query - { "query": { "range": { "create_datetime": { "gte": "2022-01-21T14:32:12+00:00", "lte": "2022-03-21T14:32:12+00:00" } } }, "size": 0, "aggs": { "unique_character_objid": { "terms": { "field": "character_objid", "size": 100 }, "aggs": { "theMax": { "top_hits": { "size": "1", "sort": { "approved_duration_seconds": { "order": "desc" } } } } } } } } DSL query : video_sessions_elastic = VideoSessionDocument.search().query('range', create_datetime={'gte': from_last_thursday, 'lte': to_wednesday}) aggs_var = A('terms', field='character_objid.keyword') video_sessions_elastic.aggs.bucket('distinct_character_objid', aggs_var) -
Django python mysql shell error while opening the shell
while connecting the Django with MySQL and opening the shell using python3 mannage.py shell I got this error -
how can I tab scroll items in image gallery in django with javascript
Please i am trying to do a tab image gallery in django using javascript to activate it dynamically. I have tried all i know but i dont know how to pass the variable to onclick="currentSlide()" to make it work incrementally . Please i am trying to do a tab image gallery in django using javascript to activate it dynamically. I have tried all i know but i dont know how to pass the variable to onclick="currentSlide()" to make it work incrementally . Please i am trying to do a tab image gallery in django using javascript to activate it dynamically. I have tried all i know but i dont know how to pass the variable to onclick="currentSlide()" to make it work incrementally . #template -property_info.html <div class="container"> <!-- Full-width images with number text --> {% for p in images %} <div class="mySlides"> <div class="numbertext">1 / 6</div> <img src="{{p.images_of_property.url}}" style="width:100%"> <h1>{{p.id}}</h1> </div> {% endfor %} <!-- Next and previous buttons --> <a class="prev" onclick="plusSlides(-1)">&#10094;</a> <a class="next" onclick="plusSlides(1)">&#10095;</a> <!-- Image text --> <div class="caption-container"> <p id="caption"></p> </div> <!-- Thumbnail images --> this is where i have issues . i dont know how to pass the value so it can increment dynamically. {% … -
Django views.py if statement not passing value to HTML File
In my Django views.py page, I have some code, where the user enter an employee ID with an HTML form, that submits the value to views.py. Using that, I check whether the employee ID is in a database by iterating over each ID in the database, appending it to an empty list, and using an if statement. The parts where I receive the employee ID is working fine, and so is the ID getting appended to the list. However, when I use an if statement to check whether the employee ID that was given is a part of the list, isn't working. Despite this working on Jupyter Notebook when i tested the same. Here's the code: views.py: from django.shortcuts import render import pandas as pd dat = pd.read_csv('/Users/Lenovo/Desktop/Cakewala DB/CW_Attendance/AttendanceApp/test_employee.csv') # Create your views here. def home(request): employee_id = request.POST.get('id') print(employee_id) id_list = [] for id in dat["ID"]: id_list.append(id) print(id_list) if employee_id in id_list: print("yes") employee_row = dat.loc[dat["ID"] == employee_id] employee_name = employee_row.iat[0, 1] return render(request, 'attendance/index.html', { "employee_id": employee_id, "employee_name": employee_name }) return render(request, 'attendance/index.html') index.html: <!DOCTYPE html> <html> <head> <title>Attendance - Home</title> </head> <body> <h1>Cakewala Attendance</h1> <form method="POST"> {% csrf_token %} <label for="id">Employee ID</label> <br> <input type="number" name="id" max="9999" … -
How to solve the problem that json type data is loaded from template to string type
The "content" field is data in json format. But when I check this value in template , it resolves to string. I want to print the value corresponding to teacher from the dictionary below. What's wrong? [views.py] history = History(user=request.user, study=study, content=study.json()) history.save() test = History.objects.filter(study__id='12') "content" value stored in DB: {'id': 12, 'is_deleted': False, 'type': 'secondary', 'study_name': 'Math', 'teacher': 'Halen/Lisa', 'team': 'A'} [html] {% for test in test %} {{ test.content.teacher }}? {{ test.content}} {% endfor %} In the case of a dictionary, the desired key value can be called, but since it is a string type, the teacher value cannot be retrieved. What should the teacher do to get the value, which is the key? -
How can I host a Django web app on Cpanel out the public_html folder?
I am trying to host a Django web application on Cpanel. However, my hosting service is having a main folder which is called public_html. In this folder, there is the index page. My project folder named myapp is out of the public_html folder. Whenever I run the application, it is showing the content of the index.html which is in the public_html folder instead of running the home page of my application that should be executed from this main urls.py file. Bellow is the main urls.py content. from django.contrib import admin from django.urls import path,include from django.conf import settings from django.conf.urls.static import static from django.conf.urls import url from django.views.generic.base import TemplateView urlpatterns = [ path('admin/', admin.site.urls), path('depenses/', include('depenses.urls', namespace='depenses')), path('cart/', include('cart.urls', namespace='cart')), path('orders/', include('orders.urls', namespace='orders')), path('coupons/', include('coupons.urls', namespace='coupons')), path('', include('shop.urls', namespace='shop')), # path('', TemplateView.as_view(template_name='templates/index.html'), name='home'), ] if settings.DEBUG: urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) Again my project is out of the public_html folder. Please assist me to host my application. -
How to I allow user to upload any type of file in database in Django?
I want to accept any type of file from the user and save it in the database in Django <input type="file" name="file_name" required> But when I try to access the file in views.py it throws the Exception as 'file_name'. file_name = request.FILES['file_name'] In the same field when I select some image. The image is stored in the media folder. -
Django: Defining 'present_company' from 'company_name' ManytoManyField
I have 2 models, Company and Employee, and defined company history as a ManytoManyField. I am trying to save the present company name of the employee which I get from the company name ManytoManyField. What should be the method to save it? This is what I tried: I tried to override the save method in Models. models.py from django.db import models class Company(models.Model): name = models.CharField(max_length=100) def __str__(self) -> str: return self.name class Employee(models.Model): name = models.CharField(max_length=100) company_name = models.ManyToManyField(Company, blank=True) present_company = models.CharField(max_length=100, blank=True) def save(self): super(Employee, self).save() last_index = self.company_name.count()-1 self.present_company=str(Company.objects.filter(employee__name=self.name)[last_index]) super(Employee, self).save() def __str__(self) -> str: return self.name I face two problems with this method: I add/edit the models from the admin site, when I try to save the models and print the names of the company, it prints out the previous edit and not the latest one. The order of the companies is not according to the order in which I save the models. So, what could be the changes in this method, or, some other method to do this job. -
Django Prefetch Related Issue - Understand it correctly
I do have the following Issue - I want to display all of the bundles with their component relations in a template: Here is my ORM-Model: class Component(models.Model): plenty_var_number = models.CharField(max_length=120, default=None, unique=True, null=True) plenty_var_id = models.CharField(max_length=120, default=None, unique=True) description = models.TextField(max_length=1000) category = models.ForeignKey(Category, on_delete=models.DO_NOTHING, null=False) updated_at = models.DateTimeField(auto_now=True, null=True, blank=True) created_at = models.DateTimeField(auto_now_add=True, null=True, blank=True) def __str__(self): return f"{self.category.name} - {self.plenty_var_number}" class Bundle(models.Model): active = models.BooleanField(default=True) plenty_var_number = models.CharField(max_length=120, default=None, unique=True, null=True) plenty_var_id = models.CharField(max_length=120, null=True, default=None) car = models.ForeignKey(Car, on_delete=models.DO_NOTHING) # m2m defined by BundleComponentRelation components = models.ManyToManyField(Component, through="BundleComponentRelation") linked_to_plenty = models.BooleanField(default=False) price = models.DecimalField(max_digits=10, decimal_places=2, default=-1.00) updated_at = models.DateTimeField(auto_now=True, null=True, blank=True) created_at = models.DateTimeField(auto_now_add=True, null=True, blank=True) class BundleComponentRelation(models.Model): component = models.ForeignKey(Component, on_delete=models.DO_NOTHING) bundle = models.ForeignKey(Bundle, on_delete=models.DO_NOTHING) qty = models.IntegerField(default=1) updated_at = models.DateTimeField(auto_now=True, null=True, blank=True) created_at = models.DateTimeField(auto_now_add=True, null=True, blank=True) I have played around with select_related and prefetch_related in my view to pass them via context to the template to display it for my users: html-template: {% for bundle in bundles %} <tr> <td><p class="fw-bold">{{ bundle.plenty_var_number }}</p></td> <td>{{ bundle.price }}</td> <td><p class="fw-bolder mb-0">{{ bundle.car }}</p> <p class="mb-0">{{ bundle.car.roof_type }}</p> <p class="mb-0">BJ: {{ bundle.car.production_start }} - {{ bundle.car.production_end }}</p> </td> {# Bundle Component Relations here #} <td style="font-size: … -
Convert word to pdf on Python without MS Word or Libre Office and on deployed Heroku app (Django)
I want to convert a .docx file to .pdf file as part of a big project that I am working on. The only problem is that I work on widows and the project is deployed on Heroku which is Linux based. My locally tested library, packages don't work on deployed version since most of them use Word or Libre Office. Please help me with a library or code package or anything that I can implement in Python where I provide the input file as docx and want the output file to be a pdf doc. Sample input and output file: input = os.path.join(BASE_DIR, doc_name+'.pdf') output = os.path.join(BASE_DIR, doc_name+'.docx') -
Django: How to keep code and database sync'ed when deploying on Heroku?
Let's say we have a Django project called Alpha. Developers work on Alpha on their dev environment before deploying the Django project to Heroku. The Procfile may look something like: release: python manage.py migrate web: python -m gunicorn wsgi:application When a developer tries to deploy a new version of Alpha, the project is shipped altogether with its migrations files (as recommended). At the end of the deployment, Heroku will execute the release statement python manage.py migrate to make all the relevant changes to the database. Because release is part of the overall deployment process, if it fails then the new code will not be deployed. However... While the code will be reverted back to what it was before the deployment (as expected), the potential changes to the Heroku's database are going to be permament. For example, let's assume that the new version has three new migrations: 0011 0012 0013 The first two migrations are executed correctly and the database is changed accordingly. They are also added to the database table django_migrations. The last one, however, contains an issue (e.g., it defines a constraint that the stage data don't respect). In this scenario, the code on Heroku (both /migrations/ and models.py) … -
Using validate filename function in all Django sterilizers
I have a validate_filename function in a serializer but seems like I have to use the same function inside multiple serializer classes to validate the file name. It doesn't seem good because it seems redundant and the concept of DRY is not being implemented. For eg: class ExampleOne(serializers.ModelSerializer): class Meta: model = ExampleOne fields =[''] def create(self, validated_data): ... return item def validate_extension(filename): extension = os.path.splitext(filename)[1].replace(".", "") if extension.lower() not in ALLOWED_IMAGE_EXTENSIONS: raise serializers.ValidationError( (f'Invalid uploaded file type: {filename}'), code='invalid', Now, I have to use the same function inside other serializers class inside the same serializer file and don't want to repeat the same code again. Is there any way we can use a separate file like validatefile.py and import the function only inside the serializer class?? But dont really know how to start and go about it. -
Getting django.urls.exceptions.NoReverseMatch: Reverse for 'fruit' not found. 'fruit' is not a valid view function or pattern name while unit testing [duplicate]
So I'm unit testing my products app urls using unittest framework but I'm getting this error home(urls.py) urlpatterns = [ path('admin/', admin.site.urls), path('', home, name='home'), path('products/', include('products.urls', namespace='products')) ] "products" app(urls.py) urlpatterns = [ path("fruit", views.fruit, name='fruit'), ] "products" app (views.py) def fruit(request): product = Product.objects.filter(category="Fruit") n = Product.objects.filter(category="Fruit").count() params = {'product': product, 'n': n} return render(request, 'products/fruit.html', params) test_urls.py import unittest from django.urls import reverse, resolve from products.views import * class TestUrls(unittest.TestCase): def test_fruit_url_is_resolved(self): url = reverse('fruit') self.assertEquals(resolve(url).func.view_class, fruit) if __name__ == "__main__": unittest.main() -
How to save flags to Django database from admin panel?
In the Django admin panel, all fields are saved to the database, except for the flags field of the SubscriberPlan model. That is, I can (un)check any flag and try to thus update a record, but the flag statuses won't be saved to the database. If I run python manage.py shell, import SubscriberPlan, do something like plan = SubscriberPlan.objects.all()[0], plan.flags = "a" plan.save() then the database will be updated and the Active flag will be displayed in the Admin panel, but, still, it won't be possible to update it from the Admin panel. So, how is it possible in Django to save this kind of a field to the database from the Admin panel? To be honest, I don't understand why it's not saved by default, while other fields are saved. admin.py from django.contrib import admin from django.utils.safestring import mark_safe class SubscriberPlanFlagsWidget(forms.Widget): available_flags = ( ('a', ('Active')), ('n', ('New')), ('p', ('Popular')), def render(self, name, value, attrs=None, renderer=None): html = [] for f in self.available_flags: html.append('<li><input type="checkbox" id="flag_%(key)s" %(checked)s key="%(key)s"/><label for="flag_%(key)s">%(name)s</label></li>' % { 'key': f[0], 'name': f[1], 'checked': 'checked' if f[0] in value.lower() else ''}) html = '<input type="hidden" name="%s" value="%s"/><ul class="checkbox flags">%s</ul>' % (name, value, ''.join(html)) return mark_safe(html) class SubscriberPlanAdmin(admin.ModelAdmin): … -
How to pass data from form.cleaned_data as variable to another view in Django
I am new to Python and Django. I am working on a form that includes a couple of IntegerField instances such as: class Hex(models.Model): horizontal_rows = models.IntegerField(validators=[MinValueValidator(1),MaxValueValidator(20),validate_odd]) vertical_rows = models.IntegerField(validators=[MinValueValidator(1),MaxValueValidator(20)]) In the view I have the following: def square_view(request): if request.method == 'POST': form = SquareForm(request.POST) if form.is_valid(): print(form.cleaned_data) return redirect(reverse('puzzle:board')) This in return gives the following output once the form is submitted: {'horizontal_rows': 3, 'vertical_rows': 3} The request is redirected to another page via (reverse('puzzle:board'). My goal is to use the data from form.cleaned_data in order to generate a board with X number of rows and Y number of columns on the new page. I am unsure how to approach this. Should I pass the data as variables directly to the template (via jinja), or should I pass it to the view of the other page (reverse('puzzle:board').