Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
`error: unpack requires a string argument of length 4` error when using syncdb to migrate
Never seen anything like it. When I do python manage.py syncdb in a Django app on the Ubuntu terminal, I'm seeing: error: unpack requires a string argument of length 4 I'm not sure what that means or how to fix it. p.s. I know syncdb is deprecated from 1.9 onwards. Put that on the back-burner for the purposes of this question. -
Django, define intermediate model AFTER m2m
I have a m2m field; class MyModel(BaseModel): initiatives = models.ManyToManyField('app.OtherModel',) But now, I need to define my own intermediate model for this m2m, after the fact; class MyModel(BaseModel): initiatives = models.ManyToManyField( 'app.OtherModel', through='app.Intermediate' ) Is there a way for me to seamlessly define one, without Django or my migrations getting really mad at me? Thanks in advance! -
Django RestFrame Work Not Registering Router Urls
I am trying to use Django's rest_framework but am having trouble with the routing. base.urls.py url(r'^api/', include('api.urls', namespace='api'), name='api'), api.urls.py from django.conf.urls import url, include from rest_framework import routers from api import views router = routers.DefaultRouter() router.register(r'test', views.UserViewSet, base_name='NAV') urlpatterns = [ url(r'^', include(router.urls)), ] api.views.py class UserViewSet(APIView): renderer_classes = (JSONRenderer, ) def get(self, request, format=None): querysets = NAV.objects.filter(fund__account_class=0, transmission=3).values( 'valuation_period_end_date').annotate( total_nav=Sum(F('outstanding_shares_par') * F('nav'))).order_by('valuation_period_end_date') content = {'qs': querysets} return Response(content) But when I try http://localhost:8000/api/test, I get a 404 Page not Found error. Any ideas? -
Using TextInput as widget for ManyToManyField
I have two models: class Post(models.Model): title = models.CharField() body = models.TextField() author = models.ForeignKey( settings.AUTH_USER_MODEL, on_delete=models.CASCADE) tags = models.ManyToManyField( Tag, related_name='posts', blank=True, ) class Tag(models.Model): name = models.CharField(max_length=30, unique=True, null=False, blank=False) And ModelForm for Post: class PostForm(forms.ModelForm): class Meta: model = Post fields = ['title', 'body', 'tags'] widgets = { 'tags': forms.TextInput, } Default widget for tags field in PostForm is MultipleSelect, but I want to use TextInput and force users to type tags and separate them with commas and if there are new tags then add its into database. The question is what field (and how) should I overwrite in PostForm in order to specify logic for setting (before rendered) and getting (after post request) value from TextInput widget? -
Django context error in extended template called by view
I'm working in Django 1.11 with Django-Jet template. Now I need to extend template in order to showing some data retrived from a view. So, I defined my template and my view. Here is the code: views.py from django.shortcuts import render from django.shortcuts import render_to_response from django.views.generic import View from django.template.context import RequestContext from django.template import Context, Template class MyView(View): def get(self, request, *args, **kwargs): op = str(self.kwargs['op']).strip().lower() pk = self.kwargs['pk'] if op =='get': template='frontend/templates/show_my_data.html' return render_to_response(template,{'foo':'bar'}) else: return HttpResponse("Not found") My simple template: {% extends "admin/base.html" %} {% load i18n admin_urls static admin_modify %} {% block content %} {{ foo }} {% endblock %} settings.py TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR,'static/')], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ] .... 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', ] But when I run a test I get a key error: Request Method: GET Request URL: http://127.0.0.1:8000/admin/data_from_db/get/24/ Django Version: 1.11.2 Exception Type: KeyError Exception Value: 'user' Exception Location: /home/marco/sviluppo/myapp/myvenv/lib/python3.4/site-packages/django/template/context.py in __getitem__, line 87 Python Executable: /home/marco/sviluppo/myapp/myvenv/bin/python So, I make some test, and I found that the problem is (maybe) in context variables. This is my base template that I need … -
Django Pagination with other variables in the GET request in a Function Based View
I've tried to implement the following solution from here: How to paginate Django with other get variables? I added this to my views.py from urllib.parse import urlencode from django import template register = template.Library() @register.simple_tag def url_replace(request, field, value): dict_ = request.GET.copy() dict_[field] = value return dict_.urlencode() def teacher_list(request, **kwargs): paginator = Paginator(results, 1) page = request.GET.get('page') try: results = paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. results = paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), deliver last page of results. results = paginator.page(paginator.num_pages) template.html {% if teacher_list.has_next %} <li><a href="?{% url_replace request 'page' teacher_list.next_page_number %}">Next</a></li> {% endif %} However, this gives me: Invalid block tag on line 155: 'url_replace', expected 'elif', 'else' or 'endif'. Did you forget to register or load this tag? I also tried loading: @register.simple_tag(takes_context=True) def url_replace(context, **kwargs): query = context['request'].GET.dict() query.update(kwargs) return urlencode(query) without success. I also tried: @register.simple_tag(takes_context=True) def url_replace(request, **kwargs): query = request.GET.dict() query.update(kwargs) return urlencode(query) None of these seem to work. -
Django add new option for ForeignKey in a ModelForm using django-autocomplete-light
I am a newbie 'asker' on this community and a newbie developer. Currently, I am developing a project in django and have got stuck while using the django-autcomplete-light to add a new 'option' when the search results return no results. I have read the DAL documentation quite a few times and tried to make it work but I can't seem to find a way. So, here is the issue : I have a ModelForm to add a new object with about 10 fields. On a few fields I have implemented DAL so they can search and add in realtime. The field I have DAL implemented on is a foreign key to another model which in turn has a foreign key field which is needed to be added when a new option is created** The search and the create part is working fine out of the box. But, I have no idea how to update the user foriegnkey field for the option being created. It needs to have current logged in user updated in the field. urls.py urlpatterns = [ url(r'^pilotname-autocomplete/$', views.PilotNameAutoComplete.as_view(create_field = 'name'), name = 'pilotname-autocomplete') ] The dropdown does show 'create "abc"'. see image create option and clicking on … -
can we create unit tests for custom widgets in a django app?
I'm new with unit testing in django, I have referred to the django documentation to write unit tests for views, forms and models. But a question came to my mind about widgets if they could be also tested, since unit tests are made to test every single unit in the project. For example I have a widget that let me write multiple emails in one inputText using a plugin and the widget as follow is made to change ' to " so that the plugin can work. class MultiEmailWidget(Input): def value_from_datadict(self, data, files, name): if name in data: if data[name]: return data[name].replace(']' ,'').replace('[','').replace('"' ,'').replace(',' , '\n') return None def render_value(self , value): """ change ' to " because multiple_email.js do split with " """ if value: return str(value).replace("'",'"') return value def render(self, name, value, attrs=None): value = self.render_value(value) return super(MultiEmailWidget, self).render(name, value, attrs) Is this widget testable ? Or do somebody have some useful links about testing widgets in django ? (if this is testable ofcourse) Thank you in advance :) -
Django: http_permissions interfering with tests
I have a view that list records. If I'm already login, I can access it with no problems. If have not login yet and try to access the page, I get redirected to the login page. So far so good! But during my tests I have the following issue: I am able to successfully login, but when I try to execute a get to list the records, I get a 403 (Permission denied) and a 302 (redirect, likely to login page). I don't understand what is going on. I know http_permissions is interfering with the tests, as I have commented the http_permissions and the test passed. Do I have to grant this http_permissions to the test user? Anyone can cast some light on this? Here is my code: teleconsultoria/models.py ... class Bibliografia(BaseModel): ativa = models.BooleanField(u'Ativa', default=True) link = models.CharField(u'Link', blank=True, max_length=2000,) nome = models.CharField(u'Nome', blank=False, max_length=255,) arquivo = SizeRestrictedFileField( u'PDF da Bibliografia', upload_to='bibliografia', blank=True, null=True, ) class Meta: verbose_name = u'Bibliografia' verbose_name_plural = u'Bibliografias' permissions = ( ('ver_bibliografia', u'Pode ver bibliografia'), ('criar_bibliografia', u'Pode criar bibliografia'), ('alterar_bibliografia', u'Pode alterar bibliografia'), ('excluir_bibliografia', u'Pode excluir bibliografia'), ) ... teleconsultoria/views.py ... class BibliografiaListView(ModelListView): model = Bibliografia app_name = 'teleconsultoria' table = BibliografiaTable search_fields = … -
Url key word argument within CreateView
How to get url keyword argument within get() or other method of CreateView? I tried to use self.kwargs['arg_name'], but without result. Thank you in advance. -
Error during the running django project
I'm running django project but i got this error. Can you help me with this problem? "C:\Program Files\JetBrains\PyCharm 2017.2.2\bin\runnerw.exe" C:\Users\Jaloliddin\AppData\Local\Programs\Python\Python36-32\python.exe E:/download/manage.py runserver 8000 Unhandled exception in thread started by .wrapper at 0x0368ED68> Traceback (most recent call last): File "C:\Users\Jaloliddin\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django-1.11.5-py3.6.egg\django\utils\autoreload.py", line 228, in wrapper fn(*args, **kwargs) File "C:\Users\Jaloliddin\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django-1.11.5-py3.6.egg\django\core\management\commands\runserver.py", line 117, in inner_run autoreload.raise_last_exception() File "C:\Users\Jaloliddin\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django-1.11.5-py3.6.egg\django\utils\autoreload.py", line 251, in raise_last_exception six.reraise(*_exception) File "C:\Users\Jaloliddin\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django-1.11.5-py3.6.egg\django\utils\six.py", line 685, in reraise raise value.with_traceback(tb) File "C:\Users\Jaloliddin\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django-1.11.5-py3.6.egg\django\utils\autoreload.py", line 228, in wrapper fn(*args, **kwargs) File "C:\Users\Jaloliddin\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django-1.11.5-py3.6.egg\django__init__.py", line 27, in setup apps.populate(settings.INSTALLED_APPS) File "C:\Users\Jaloliddin\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django-1.11.5-py3.6.egg\django\apps\registry.py", line 85, in populate app_config = AppConfig.create(entry) File "C:\Users\Jaloliddin\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django-1.11.5-py3.6.egg\django\apps\config.py", line 120, in create mod = import_module(mod_path) File "C:\Users\Jaloliddin\AppData\Local\Programs\Python\Python36-32\lib\importlib__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "", line 978, in _gcd_import File "", line 961, in _find_and_load File "", line 936, in _find_and_load_unlocked File "", line 205, in _call_with_frames_removed File "", line 978, in _gcd_import File "", line 961, in _find_and_load File "", line 948, in _find_and_load_unlocked ModuleNotFoundError: No module named 'blog' -
Diplay object list, not working
I guess that I will ask a very simple question, but it is a sign that I still do not get something. I have a team model and I would like to display a list of all the team that the logged in user created. I tried with {% extends 'base.html' %} {% block body %} <div class="container"> <div class="jumbotron"> <h2>Select one of your team and link it to your project</h2> </div> <div class="col-md-8 col-md-offset-2"> {% for i in team_set.all %} <p>{{ i.team_name }}</p> {% endfor %} </div> </div> {% endblock %} But first it does not display anything and it is suppose to show all the team and not only the teams that the current logged in user created. COuld you please give me a hand ? model.py : class Team(models.Model): team_name = models.CharField(max_length=100, default = '') team_hr_admin = models.ForeignKey(MyUser, blank=True, null=True) members = models.ManyToManyField(MyUser, related_name="members") def __str__(self): return self.team_name -
Customized admin drop down menu in Django python
I am just a beginner in python. I have created two admin services called child and parent. Parent - Table id name type Child - Table pid type cname In both services column "type" will be displayed in the drop down list. When creating an entry for parent, if the "type" was not chosen in the parent service. That unchosen Parent id's should shown the in the child service in dropdown Sorry for my bad english # models.py class Parent(models.Model): id = models.IntegerField(blank=False) type = models.ForeignKey( 'self', on_delete=models.CASCADE, blank=True, null=True, related_name='parent_set') name = models.CharField(max_length=20) class Child(models.Model): pid = models.IntegerField(max_length=30, blank=False) Type = models.ForeignKey( Parent, null=True, on_delete=models.CASCADE, related_name='child_set' ) pname = models.CharField(max_length=20) Any help would be appreciated -
How to pass parametres of javascript function when call div with innerhtml
I have a problem, when I pass parameters to a function in javascript, innerHTML doesn't know it. This is my code: function get_similarity(reference) { console.log("reference",reference); var div1= document.getElementById("mylocation"); var div2= document.getElementById("mylocation2"); div2.innerHTML=div1.innerHTML; } When I click on an image, the function GET_similarity(Reference) gets called. This function must make changes to the div below: <div id ="mylocation"> {% for sim in similars %} {% ifequal reference forloop.counter %} {% for sim1 in sim %} <div class="item"> <div class="ct-itemProducts ct-u-marginBottom30 ct-hover"> <label class="control-label sale"> Sale </label> <a href="{% url 'single_product' pk=sim1.id %}"> <div class="ct-main-content"> <div class="ct-imageBox"> <img src="{{ sim1.image }}" width="265" height="194" alt=""><i class="fa fa-eye"></i> </div> <div class="ct-main-text"> <div class="ct-product--tilte"> {{ sim1.zip_code }} {{ sim1.location }} </div> <div class="ct-product--price"> {# <span class="ct-price--Old">$ 450,000</span> #} <span> € {{ sim1.price }}</span> </div> <div class="ct-product--description"> {{ sim1.description }} </div> </div> </div> <div class="ct-product--meta"> <div class="ct-icons"> <span> <i class="fa fa-bed"></i> {{ sim1.bed }} </span> <span> <i class="fa fa-cutlery"></i> 1 </span> </div> <div class="ct-text"> <span> Area: <span>{{ sim1.area }} m2</span></span> </div> </div> </a> </div> </div> {% endfor %} {% endifequal %} {% endfor %} </div> -
The order of dictionary is varied each time
The order of dictionary is varied each time although using OrderedDict. I wrote in views.py from collections import OrderedDict from django.shortcuts import render import json def index(request): with open('./data/data.json', 'r') as f: json_dict = json.loads(f.read()) json_data = OrderedDict() json_data = json_dict return render(request, 'index.html', {'json_data': json_data}) and I wrote in index.html <html> <head> <script type="text/javascript" src="//code.jquery.com/jquery-1.11.0.min.js"></script> <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/chosen/1.8.2/chosen.jquery.min.js"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/chosen/1.4.2/chosen.jquery.js"></script> <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/chosen/1.4.2/chosen.css"> </head> <body> <select id="mainDD" data-placeholder="Choose" class="chzn-select" style="width:600px;"> {% for i in json_data.items.values %} <option>{{ i }}</option> {% endfor %} </select> <select name="type" id="type1"> {% for j in json_data.type1.values %} <option>{{ j }}</option> {% endfor %} </select> <select name="type" id="type2"> {% for k in json_data.type2.values %} <option>{{ k }}</option> {% endfor %} </select> <select name="type" id="type3"> {% for l in json_data.type3.values %} <option>{{ l }}</option> {% endfor %} </select> <select name="type" id="type4"> {% for m in json_data.type4.values %} <option>{{ m }}</option> {% endfor %} </select> </script> </body> </html> Variable of i&j&k&l&m has result of json_data,but this dictionary of json_data is not the order.For example i has {'items': [{'---': '---', ‘A’: ‘a’, ‘B’: ‘b’, ‘C: ‘c’, ‘D’: ‘d’}]} but the order of drill down is b=>c=>d=>a.I want to show a =>b=>c=>d .I think this can be done by … -
Variables are not instantiated
def count_customers_per_period(self): if not self.request.GET.get('period'): period = self.request.GET['period'] entry_date_production = datetime.datetime(2017, 6, 1) start_date = CustomerProfile.objects.filter(user__date_joined__gte=entry_date_production).\ first().user.date_joined end_date = CustomerProfile.objects.last().user.date_joined def start_end_period(period): start = start_date - datetime.timedelta(period) end = start + datetime.timedelta(period) if period == 'day': while start < end: array = np.array([]) count = CustomerProfile.objects.filter(user__date_joined__date=start_date).count() array = np.append(array, count) start_date += datetime.timedelta(1) elif period == 'week': start_end_period(7) while start < week: array = np.array([]) count = CustomerProfile.objects.filter(user__date_joined__range=[start, end]) array = np.append(array, count) start = end + datetime.timedelta(1) end = start + datetime.timedelta(7) elif period == 'month': start_end_period(months=1) while start < end: array = np.array([]) count = CustomerProfile.objects.filter(user__date_joined__range=[start, end]) array = np.append(array, count) start = end + datetime.timedelta(1) end = start + datetime.timedelta(months=1) elif period == 'year': start_end_period(years=1) while start < end: array = np.array([]) count = CustomerProfile.objects.filter(user__date_joined__range=[start, end]) array = np.append(array, count) start = end + datetime.timedelta(1) end = start + datetime.timedelta(years=1) return array In this method, I define start_end_period() function, because I need you use it multiple time. Questions : Is it normal that start and end are not instantiated whenever I call start_end_period() function? Is it a good practice to put a function in a method as this way? -
Error "'DefaultConnectionProxy' object has no attribute '__getitem__'" when calling stored procedure
Hi i'm making a project using python/Django, on my first page (index) i'm calling a stored procedure to fetch the data. def index(request): listOPT = [] Data = [] fluxState = settings.FLUX_MANAGER_STATE if fluxState != True: listOPT.append('FLUX AXEREAL : OFF') cursor = connection['site'].cursor() """MS SQL CALL TO STORED PROCEDURE SP_webGET_RESUME_MVT_INIT_ACTIF """ cursor.execute("{CALL SP_webGET_RESUME_MVT_INIT_ACTIF}") mouvements = cursor.fetchall() cursor.close() return render(request, 'index.html', locals()) but when executing i get this error "'DefaultConnectionProxy' object has no attribute 'getitem'" Traceback : Environment: Request Method: GET Request URL: http://10.1.20.14:8084/gestion_mouvement/index Django Version: 1.9.6 Python Version: 2.7.11 Installed Applications: ['django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'Gestion_Mouvement'] 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.auth.middleware.SessionAuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'easy_pjax.middleware.UnpjaxMiddleware'] Traceback: File "C:\Python27\lib\site-packages\django\core\handlers\base.py" in get_response 149. response = self.process_exception_by_middleware(e, request) File "C:\Python27\lib\site-packages\django\core\handlers\base.py" in get_response 147. response = wrapped_callback(request, *callback_args, **callback_kwargs) File "E:\prog2\PJ1705-027_Automatisation_Silo1_Site_LADON\4-Developpement\Informatique\Web\Gestion_Mouvements\Gestion_Mouvements\Gestion_Mouvement\views.py" in index 26. cursor = connection['site'].cursor() Exception Type: TypeError at /gestion_mouvement/index Exception Value: 'DefaultConnectionProxy' object has no attribute '__getitem__' Any idea on how to fix this ? i saw some people had to add some def unicode to their models but it doesn't seem to work for me. -
Create a django superuser but never let it login
from django.contrib.auth.models import User from django.core.management.base import BaseCommand class Command(BaseCommand): help = 'Create default system user without login authorization' def handle(self, *args, **options): User.objects.create_superuser('codobot', 's@codium.co', None) I create the superuser with None password But when I look into the database it still has data in field password. Begin with ! Question: Is that user be able to login? -
WebInterface for a complex programmable logic controll device
My project is to develop a Web Interface for a complex machine. The web interface should be applied for maintaining and diagnostics. The webserver should run on a embedded device. On the embedded device a process which takes all the required data from the complex machine (Sensor data, etc..) and delivers the data to the webserver/webinterface is needed. Another requirement is, the webinterface should be available for a long product live cycle. The webinterface should show realtime data and allow to manipulate data from the complex machine. So I`m completely new at this topic. I found out the Webframework Django and for real-time data the module channels (Websocket) would be fit for this. What experience is available for Django/Channels or other Solutions to fulfill my requirements ? -
Change 'Change model class name' in Django Admin || Change the Change <h1>
I know about: class MFM(models.Model): class Meta: verbose_name = 'my fancy Model' verbose_name_plural = 'my fancy Models' but when I edit MFM in Django Admin, it says 'Change my fancy Model'. But I want it to say 'Settings on my fancy Models'. -
How can I prevent the same task executed one OVER another?
I have a task that pulled data from API and then do system automation (deleting, renaming, ...) with respect to a database (SQLite). I set the task to be executed every 5 minutes. However, sometimes the task takes more than 5 minutes to complete, hence two task run in parallel. This is not good because SQLite database is locked to the task in 0 minute. How can I have, either, the task will not be executed unless the previous task has already finished or the second task queued-up and executed directly after the 0 minute task finished? I have tried to use global boolean to prevent the task to be executed when it is running, like this. automate_is_running = False @periodic_task(run_every=timedelta(minutes=5)) def automate(): if not automate_is_running: automate_is_running = True automate_all() automate_is_running = False But that returns UnboundLocalError: local variable 'automate_is_running' referenced before assignment error. What should I do? -
Django 1.11.5 templates in nested folders
I have a problem with Django Templates in nested folders. My project has the next schema: . ├── eventus │ ├── eventus │ │ ├── __init__.py │ │ ├── __pycache__ │ │ │ ├── __init__.cpython-36.pyc │ │ │ ├── urls.cpython-36.pyc │ │ │ └── wsgi.cpython-36.pyc │ │ ├── db.sqlite3 │ │ ├── settings │ │ │ ├── __init__.py │ │ │ ├── __pycache__ │ │ │ │ ├── __init__.cpython-36.pyc │ │ │ │ ├── base.cpython-36.pyc │ │ │ │ └── local.cpython-36.pyc │ │ │ ├── base.py │ │ │ ├── local.py │ │ │ ├── prod.py │ │ │ └── staging.py │ │ ├── urls.py │ │ └── wsgi.py │ ├── manage.py │ └── myapps │ ├── __init__.py │ ├── __pycache__ │ │ └── __init__.cpython-36.pyc │ ├── events │ │ ├── __init__.py │ │ ├── __pycache__ │ │ │ ├── __init__.cpython-36.pyc │ │ │ ├── admin.cpython-36.pyc │ │ │ ├── models.cpython-36.pyc │ │ │ ├── urls.cpython-36.pyc │ │ │ └── views.cpython-36.pyc │ │ ├── admin.py │ │ ├── apps.py │ │ ├── migrations │ │ │ ├── 0001_initial.py │ │ │ ├── 0002_auto_20170924_2140.py │ │ │ ├── __init__.py │ │ │ └── __pycache__ │ │ │ ├── 0001_initial.cpython-36.pyc │ │ … -
django form template designer friendly
I am doing the django project right now. I love the principle of DRY. I have a form which can be applied to all other pages which needs it. I mean a generic form based from django docs. But in the form, there can be select type, file upload, checkbox, radio etc which I dont like the design of native html. I want to leverage the design of material with some customization. How can I do it? Below is my form and my form has checkbox, file upload and multiple select which I need to customize. In a nutshell, my question is how do I make my generic form designer friendly? For now I am handling my form template as follow <form class="form" role="form" action="" method="post"> {% csrf_token %} <div class="form-group label-floating"> <label class="control-label" for="{{ form.company.id_for_label}}">Company</label> <select class="form-control" name="{{ form.company.name }}" id="{{ form.company.id_for_label}}"> <option value=""></option> {% for id, name in form.company.field.choices %} <option value="{{ id }}" class="option">{{ name }}</option> {% endfor %} </select> </div> <div class="form-group label-floating"> <label class="control-label" for="{{ form.name.id_for_label}}">Job Title</label> <input type="text" id="{{ form.name.id_for_label }}" name="{{ form.name.name }}" class="form-control"> </div> <div class="row"> <div class="col-md-6"> <div class="form-group label-floating"> <label class="control-label" for="{{ form.description.id_for_label}}">{{ form.description.label }}</label> <div class="markdownx"> {{ form.description|add_css:'form-control' }} … -
Django - Saving data across paginated formset
I'm using modelformsets to edit 100's of items at once and I'm using pagination according to the solution at http://missfilly.github.io/2013/02/17/how-to-paginate-django-formset/ This works in general, however the form data is not held when moving pages, therefore if I fill in 10 pages of forms, only the last one is saved. I thought sessions may be the way to solve this however there is no POST data when the 'next' button is pressed. Has anyone come across a need to solve this problem before or could advise me on how I may solve it? Edit: I guess Ajax may also be an avenue to go down to solve this but I'm not sure where I would start. -
Django Internal Server Error - RecursionError
I've tried a very basic load test on my django app, something among the lines: for _ in {1..50}; do for x in {1..50}; do curl http://example.com &> /dev/null; done & done After a while server started returning http 500, the reason for that was RecursionError: Serving on http://unix:/tmp/waitress/socket WARNING:django.template:Exception raised while rendering {% include %} for template 'django/forms/widgets/email.html'. Empty string rendered instead. Traceback (most recent call last): File "/usr/local/lib/python3.6/site-packages/django/template/loader_tags.py", line 216, in render return template.render(context) File "/usr/local/lib/python3.6/site-packages/django/template/base.py", line 209, in render return self._render(context) File "/usr/local/lib/python3.6/site-packages/django/template/base.py", line 199, in _render return self.nodelist.render(context) File "/usr/local/lib/python3.6/site-packages/django/template/base.py", line 990, in render bit = node.render_annotated(context) File "/usr/local/lib/python3.6/site-packages/django/template/base.py", line 957, in render_annotated return self.render(context) File "/usr/local/lib/python3.6/site-packages/django/template/defaulttags.py", line 166, in render values = self.sequence.resolve(context, True) File "/usr/local/lib/python3.6/site-packages/django/template/base.py", line 708, in resolve obj = self.var.resolve(context) File "/usr/local/lib/python3.6/site-packages/django/template/base.py", line 849, in resolve value = self._resolve_lookup(context) File "/usr/local/lib/python3.6/site-packages/django/template/base.py", line 882, in _resolve_lookup current = current[bit] File "/usr/local/lib/python3.6/site-packages/django/template/context.py", line 84, in __getitem__ for d in reversed(self.dicts): RecursionError: maximum recursion depth exceeded while calling a Python object WARNING:django.template:Exception raised while rendering {% include %} for template 'django/forms/widgets/text.html'. Empty string rendered instead. Traceback (most recent call last): File "/usr/local/lib/python3.6/site-packages/django/template/loader_tags.py", line 216, in render return template.render(context) File "/usr/local/lib/python3.6/site-packages/django/template/base.py", line 209, in render return …