Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
Django - Customising Modelform
Ive tried to add the following to my form: class ReadOnlyFormMixin(forms.ModelForm): def __init__(self, editable=False, *args, **kwargs): super(forms.ModelForm, self).__init__(*args, **kwargs) if editable==False: for key in self.fields.keys(): self.fields[key].disabled = True and then make my form like this: class UserForm(ReadOnlyFormMixin): """ Edit a User """ class Meta: model = User fields = ('first_name','last_name', 'email') However my code then never passes .is_valid() ~How should I make my form read only, via a URL flag. (e.g. im trying to do) urlpatterns = [ url(r'^$', index, name='index'), url(r'^profile/$', profileView.as_view(), name='profile'), url(r'^profile/edit/$', profileView.as_view(), {'edit': True}, name='profile_edit'), ] -
Migrating django models in Postgres/PostGIS not reflecting
I successfully imported my Geojson data using ogr2ogr to PostGIS. I run the following command: python manage.py inspectdb class Route(models.Model): ogc_fid = models.AutoField(primary_key=True) distance = models.FloatField(blank=True, null=True) route_type = models.CharField(max_length=-1, blank=True, null=True) route_long = models.CharField(max_length=-1, blank=True, null=True) route_name = models.CharField(max_length=-1, blank=True, null=True) agency_id = models.ForeignKey(max_length=-1, blank=True, null=True) route_id = models.CharField(max_length=-1, blank=True, null=True) route_url = models.CharField(max_length=-1, blank=True, null=True) route_desc = models.CharField(max_length=500, blank=True, null=True) duration = models.FloatField(blank=True, null=True) shape_id = models.IntegerField(blank=True, null=True) route_tcolor = models.CharField(max_length=-1, blank=True, null=True) route_color = models.CharField(max_length=-1, blank=True, null=True) wkb_geometry = models.LineStringField(blank=True, null=True) class Meta: managed = False db_table = 'network_route' Ofcourse I had to modify the max_length to a positive integer and set manage to True so I did. I also added an additional column, created_at and updated_at. Resulting to the following final model: class Route(models.Model): ogc_fid = models.AutoField(primary_key=True) distance = models.FloatField(blank=True, null=True) route_type = models.CharField(max_length=100, blank=True, null=True) route_long = models.CharField(max_length=200, blank=True, null=True) route_name = models.CharField(max_length=100, blank=True, null=True) agency_id = models.ForeignKey(Agency, on_delete=models.CASCADE) route_id = models.CharField(max_length=100, blank=True, null=True) route_url = models.CharField(max_length=300, blank=True, null=True) route_desc = models.CharField(max_length=500, blank=True, null=True) duration = models.FloatField(blank=True, null=True) shape_id = models.IntegerField(blank=True, null=True) route_tcolor = models.CharField(max_length=100, blank=True, null=True) route_color = models.CharField(max_length=100, blank=True, null=True) wkb_geometry = models.LineStringField(blank=True, null=True) created_at = models.DateTimeField(default=timezone.now(),editable=False) updated_at = models.DateTimeField(blank=True, null=True) objects = … -
ajax like button is updating all the product with weird values
I try to implemented ajax like button in my django project. I wanted like button to work in the list of company(list view) and detail view. But in list view, when I hit the like button, the like is shown 201 when it should be only 2 and when unlike it shows 200 something like that instead of 0. Also it is updating all the companies like value instead of specific company whose like button is clicked. What might be wrong in my code? Here is the code url(r'^like/company$', views.CompanyLikesAPIView.as_view(), name="like-company"), class CompanyLikesAPIView(APIView): permission_classes = (permissions.IsAuthenticated, ) def post(self, request, slug=None, format=None): company_id = request.data.get('id') print('company_id', company_id) action = request.data.get('action') if company_id and action: try: company = Company.objects.get(id=company_id) if action == "like": company.likes.add(request.user) else: company.likes.remove(request.user) return Response({'status': 'ok'}) except: pass return Response({'status': 'ko'}) {% block pagecontent %} <div class="container"> {% for company in companies %} {% with total_likes=company.likes.count users_like=company.likes.all %} {% if forloop.first %}<div class="row">{% endif %} <div class="col-md-4"> <div class="card-body text-center"> <h3 class="card-title text-center">{{ company.name }}</h3> <a href="{{ company.get_absolute_url }}" class="btn btn-link">View Detail</a> <span class="count"> <span class="total">{{ total_likes }}</span> like{{ total_likes|pluralize }} </span> <a href="#" data-id="{{ company.id }}" data-action="{% if request.user in users_like %}un{% endif %}like" class="company-like like-{{ company.id}} … -
Deploying Django and Angular 2 on Heroku
I am at a bit of a roadblock. Under one GitHub repository, I have two services. A Django API, and an Angular 2 application (forgive me if any of my vocabulary isn't aaccurate). I am trying to use Heroku to accomplish hosting this. My current Procfile looks like so: web: node frontend/server.js api: gunicorn platform/Minieco/wsgi.py However, when I build through Heroku's website, I get the following output: -----> Python app detected -----> Installing requirements with pip -----> Discovering process types Procfile declares types -> api, web -----> Compressing... Done: 47.2M -----> Launching... Released v7 https://minieco.herokuapp.com/ deployed to Heroku It detects the app as Python, when really only the API is. Maybe this isn't the issue, but it stood out to me. Either way, I get an Application Error when I visit the website, what are the correct steps to take in order to run both of these services side-by-side? -
How to connect an Arduino by ethernet shield to a raspberry pi 3
I have a Django Application running on my raspberry pi, this application shows the temperature of many temperature sensors (LM35DZ) connected to an arduino. When I was in the debug environment I connected the arduino to the LAN, then it does the requests to the Raspberry. Now in production environment is required to be connected directly to the Raspberry. How may I do this? -
Django : Object has no attribute _set'
I have this code in a project with django: def all_songs(request, filter_by): if not request.user.is_authenticated(): return render(request, 'music/login.html') else: try: song_ids = [] for album in Album.objects.all(): for song in album.song_set.all(): song_ids.append(song.pk) users_songs = Song.objects.filter(pk__in=song_ids) for album in GenericAlbum.objects.all(): for song in album.genericsong_set.all(): song_ids.append(song.pk) generic_songs = GenericSong.objects.filter(pk__in=song_ids) except Album.DoesNotExist: users_songs = [] except GenericAlbum.DoesNotExist: generic_songs = [] return render(request, 'music/songs.html', { 'song_list_all': users_songs, 'generic_song_list': generic_songs, 'filter_by': filter_by, }) When I go to the allSong page, I get this error : AttributeError: 'NoneType' object has no attribute 'split' I think a variable allows a None value, but I don't know witch one, I tried 'em all and still same problem. -
Django RestFramework Serializer request.data with array object
i need you help ! i have this situation, i received by POST this data: {'fields':[{'key':'comment', 'value':'something', 'data_type':'string'}, {'key':'days', 'value':'2', 'data_type':'int'}]} My serializers class FieldSerializer(serializers.Serializer): value = serializers.CharField(max_length=200) data_type = serializers.CharField(max_length=200) key = serializers.CharField(max_length=200) class FieldsSerializer(serializers.Serializer): fields = FieldSerializer(many=True) In my view pass request.data to FieldsSerializer() serializer = FieldsSerializer(data=request.data, many=True) serializer.is_valid() raise Exception(serializer.data, serializer.errors) //output: Exception: (ReturnDict([('fields', [])]), ReturnDict()) i use versions Django==1.8.15 and djangorestframework==3.0 -
Using logging in python and django to record user interactions with a website
I'm currently working on helping with the development of a website. Someone this past weekend attempted to hack into the website, but failed. However, since the entire site was rewritten this last summer, there was no way to store their movements within the site and to catch the user's IP before they gave up. Is there a way to track a users actions (such as which links they visit) while in a website and store it into a file (the website is small) in order to make sure we have a record of the actions, if anyone ever attempts to hack it again? To see if I could do this, I started using logging, but ran into issues with how exactly I am supposed to record the users actions with logging. My setup is below, and it works, I just don't know what to put in place of the string currently inside of logging.info() to record the movements of the user. Thanks in advance for any help you can provide. from ipware.ip import get_ip import logging def IPCatcher(request): ip = get_ip(request) if ip is not None: print("We have an IP address for user") print(ip) logging.basicConfig(filename='log_recording.txt', level=logging.DEBUG,format='%(asctime)s %(message)s', datefmt='%m/%d/%Y %I:%M:%S %p') … -
which has a better performance filter / all in django queryset?
let's say I have a model named Best I am wondering if using Best.objects.all() would be a better choice or Best.objects.filter(this=that) would be better performance overall if I do not need to query everything -
How can I connect to ms sql server using setting.py in Django?
Can anyone help me in this. I want to connect SQL server using Django -
are we able to view m2m fields in both models instead of just one model? django
let's say i have two models and one of them has a m2m field. For example: class AAA(models.Model) name = models.Charfield(max_length=64) class BBB(models.Model) style = models.ManyToManyField(AAA, blank=True) if I go to django admin dashboard class BBB, I know that I will be able to see style field and with class AAA that I can multi-select. I am wonder if there's a way that in class AAA I can view style too? Instead of using coding to find out which BBB , AAA has relationship with. Hopefully my explanation is understandable. Thanks in advance. -
Django Users Authentication
En la autentificacion de django estoy utilizando un backend pero al momento de correr mi proyecto me aparece el siguiente error No module named 'user' Model Here in the model I am using AbstractBaseUser and PermissionsMixxin as a model to use the properties of the django user.In the model I am using USERNAME as the email to access the application. from __future__ import unicode_literals from time import timezone from django.db import models from django.contrib.auth.models import AbstractBaseUser from django.contrib.auth.models import BaseUserManager from django.contrib.auth.models import PermissionsMixin from django.core.mail import send_mail from django.utils.translation import ugettext_lazy as _ from apps.people.models import People class PersonalizadoBaseUserManager(BaseUserManager): def _create_user(self, email, password, is_staff, is_superuser, **extra_fields): if not email: now = timezone.now() raise ValueError('Debe tener un email') email = self.normalize_email(email) user = self.model(email=email, is_staff=is_staff, is_active=True, is_superuser=is_superuser, last_login=now, date_joined=now, **extra_fields) user.set_password(password) user.save(using=self._db) return user def create_user(self, email, password=None, **extra_fields): return self._create_user(email, password, False, False, **extra_fields) def create_superuser(self, email, password, **extra_fields): return self._create_user(email, password, True, True, **extra_fields) class User(AbstractBaseUser,PermissionsMixin): User = models.OneToOneField(People, blank=True, on_delete=models.CASCADE) username = models.CharField(max_length=50, unique=True) email = models.EmailField(blank=True, unique=True) is_active = models.BooleanField(default=True) is_staff = models.BooleanField(default=False) USERNAME_FIELD = 'email' REQUIRED_FIELDS = ['username', 'User'] objects = PersonalizadoBaseUserManager() class Meta: verbose_name = _('user') verbose_name_plural = _('users') def get_absolute_url(self): return "/users/%$/" % … -
Django do I use query or url path to pass a parameter
If I have two urls: url(r'^maker/$', views.maker_list) #lists a car makers url(r'^model/$', views.model_list) #lists of car models If I click on the URL for models it gives me a list of models. If I click on the URL for makers it gives me a list of makers. I was thinking if I click on a maker e.g. CarMaker I want it to take me to a subset of all models ie. the ones that are made by the maker eg. CarMaker. Is the best way to have it in the path like model/CarMaker/ or as a query like model/?maker=CarMaker. I have read if its unique put it in the path, however, this feels like a search/refinement, which are queries. I am a bit confused where to draw the line. Side question: Should it be model/CarMaker/ or CarMaker/model/? -
Display a schedule from a list of times?
I have two models (https://pastebin.com/8WgWRM19, and below). At the moment the second - the student has a list of (school) classes, each of which has a start time, end time, and a set of days it appears on. I'm trying to efficiently translate this into a schedule or 'calendar' that shows in segmented time blocks and per day what classes the student has. Any help would be appreciated. (Model for Student: class Student(auth.models.User,auth.models.PermissionsMixin): classes = models.ManyToManyField(SchoolClass) def __str__(self): return self.username def getClassTimes(self): times = {} for c in self.classes.all(): days,start_time,end_time=c.getTimes() for d in days: if not (d in times): times[d] = [(start_time,end_time,c)] else: times[d] += [(start_time,end_time,c)] return times ) -
How to Generate Order List Item from List in python
I tried to create an order list item (<ol></ol>) from a list in python. My list is as following: listItem = [ ['101','Dashboard'], ['102','Potential Customer'], ['102-01','Potential Customer Activity'], ['102-02','Potential Customer Report'], ['102-99','Potentail Customer Detail'], ['102-99-01','Potential Customer Detail Listing'], ['102-99-02','Potential Customer Follow Up'], ['102-99-02-01','Follow Up PAR'] ] From this list, I wish to make it as order list item according to itemID such as 101,102,102-01,..etc that would like this: <ol> <li data-itemID="101">Dashboard</li> <li data-itemID="102">Potential Customer <ol> <li data-itemID="102-01">Potential Customer Activity</li> <li data-itemID="102-99">Potential Customer Detail <ol> <li data-itemID="102-99-01">Potential Customer Detail Listing</li> <li data-itemID="102-99-02">Potential Customer Follow Up <ol> <li data-itemID="102-99-02-01">Follow Up PAR</li> </ol> </li> </ol> </li> </ol> <li> <ol> I have tried my code as following: from flask import * import re app = Flask(__name__) @app.route('/', methods=['GET','POST']) def checkName(): orderList = '' listItem = [ ['101','Dashboard'], ['102','Potential Customer'], ['102-01','Potential Customer Activity'], ['102-02','Potential Customer Report'], ['102-99','Potentail Customer Detail'], ['102-99-01','Potential Customer Detail Listing'], ['102-99-02','Potential Customer Follow Up'], ['102-99-02-01','Follow Up PAR'] ] print "List Item: ",listItem orderList += '<ol>' for item in listItem: if item[0].find('-') > 0: # list has sub-list item orderList += '<ol>' orderList += '<li data-itemID=%s>'%(item[0]) orderList += item[1] orderList += '</li>' orderList += '</ol>' else: # list has no sub-list item orderList … -
Django MySQL Error (1146, "Table 'db_name.django_content_type' doesn't exist")
I am getting the error django.db.utils.ProgrammingError: (1146, "Table 'db_name.django_content_type' doesn't exist") when trying to do the initial migration for a django project with a new database that I'm deploying on the production server for the first time. I suspected the problem might be because one of the the apps had a directory full of old migrations from a SQLite3 development environment; I cleared those out but it didn't help. I also searched and found references to people having the problem with multiple databases, but I only have one. Django version is 1.11.6 on python 3.5.4, mysqlclient 1.3.12 -
How to sort objects by a derived calculation?
I have a class called Team that has wins and losses. I want to be able to sort teams by a win_pct which should be the ratio of wins to total games played (i.e. wins.count() + losses.count()). class Team(TimestampModerated): name = models.CharField(max_length=80, blank=False, null=False) wins = models.ManyToManyField('self', blank=True, symmetrical=False, related_name='related_wins') losses = models.ManyToManyField('self', blank=True, symmetrical=False, related_name='related_losses') def num_wins(self): return self.wins.count() def num_losses(self): return self.losses.count() def win_pct(self): return self.wins.count()/(self.wins.count() + self.losses.count()) So, in my view I would have something like this: @list_route def teams_list(self, request): teams = Team.objects.all().order_by('-win_pct') page = self.paginate_queryset(teams) if page is not None: serializer = self.get_serializer(page, many=True) return self.get_paginated_response(serializer.data) serializer = self.get_serializer(teams, many=True) return Response( data=serializer.data ) This just gives an error: django.core.exceptions.FieldError: Cannot resolve keyword 'win_pct' into field. Choices are: created, id, losses, moderation_code, related_losses, related_wins, name, updated, wins -
DRF BooleanField in ModelSerializer causes IntegrityError
I am having trouble with my ModelSerializer class Recall(models.Model): thermal_step = models.BooleanField() have_inventory = models.BooleanField() have_adverse = models.BooleanField() class OrderRecallSerializer(serializers.ModelSerializer): class Meta: model = Recall fields = ['thermal_step', 'have_inventory', 'have_adverse'] s = OrderRecallSerializer(data={}) s.is_valid() >>> True s.save() >>> django.db.utils.IntegrityError: null value in column "thermal_step" violates not-null constraint In django BooleanField is always set to blank=True due to browsers don't send unchecked checkbox in POST data. ModelForm sets model field to False in this case. When using DRF ModelSerializer, generated BooleanField is created with required=False, and when the field is not present in data, passed to serializer, model field is set to None and raises IntegrityError when saving model. Should I explicitly specify BooleanField(default=False) in my ModelSerializer, or I am missing something? I would expect ModelSerializer to behave similar to ModelForm - set value to False when it is not present, which is equal to generating BooleanField with default=False automatically. -
Navbar selection option
I am using a navbar-inverse using bootstrap, in a django project, that contain a 4 "li" buttons. The thing is, I want the firth one to have a 2 choices (select from one of them), here is the code of the "li" : <ul class="nav navbar-nav"> <li class="{% block home_active %}{% endblock %}"><a href="{% url 'music:home' %}"><span class="glyphicon glyphicon-home" aria-hidden="true"></span>&nbsp; Home</a></li> <li class="{% block cloud_active %}{% endblock %}"><a href="{% url 'music:cloud' %}"><span class="glyphicon glyphicon-cloud" aria-hidden="true"></span>&nbsp; Cloud</a></li> <li class="{% block albums_active %}{% endblock %}"><a href="{% url 'music:index' %}"><span class="glyphicon glyphicon-cd" aria-hidden="true"></span>&nbsp; Albums</a></li> <li class="{% block songs_active %}{% endblock %}"> <a href="{% url 'music:songs' 'all' %}"><span class="glyphicon glyphicon-music" aria-hidden="true"> </span>&nbsp; Songs</a> </li> </ul> -
GET Method Returns Different Errors With Values
I want to get values from a form with 'GET' method and perform an operation with it. Now, my html is like this, <form action="{% url 'myman' %}"> <input type='hidden' name='agname' maxlength='300' value='{{mac.user.username}}' /> <input type='text' name='amount' maxlength='300' required /> <input type="submit" value="Send" /> </form> The views is like this, @login_required def myman(request): yoname=request.GET.get('agname') print yoname # did this to see the value in terminal, debugging purposes damount = request.GET.get('amount') print damount # did this to see the value in terminal, debugging purposes requested_decimal_amount=Decimal(damount) # other code follows return redirect('dashboard') I got this error Cannot convert None to Decimal In my terminal, the url is like this; " GET example.com/main/agname=jesse&amount=200 HTTP/1.1" None None I changed my views.py function to this, @login_required def myman(request): yoname=request.GET['agname'] print yoname # did this to see the value in terminal, debugging purposes damount = request.GET['amount'] print damount # did this to see the value in terminal, debugging purposes requested_decimal_amount=Decimal(damount) # other code follows return redirect('dashboard') I got this error; MultiValueDictKeyError at /main/ "'agname'" In the terminal I got; " GET example.com/main/agname=jesse&amount=200 HTTP/1.1" jesse 200 For the second function, it returned the values but I don't get why it's giving me an error! What am I … -
Django: Use ugettext_lazy in templates
Hello I want to know if I can use ugettext_lazy as _ in the templates of django because I want to replace the tags of {% trans %} and {% blocktrans %} because I don't want to make the messages. I want to do something like this: <h1>_('hello')</h1> Instead of this: <h1>{% trans 'hello' %}</h1> Thanks -
Django Migrations: Same migrations being created with makemigrations
Django is creating the same migrations file repeatedly when calling: ./manage.py makemigrations The same migrations will be created in a new migrations file every time makemigrations is run regardless of if the changes are migrated or not. The process looks like so: ./manage.py makemigrations app Migrations for 'app': project/app/migrations/0007_auto_20171010_1837.py - Alter field charge_type on charge - Alter field fee_type on fee - Alter field event_type on orderevent ./manage.py migrate app Running migrations: Applying mws.0007_auto_20171010_1837... OK ./manage.py makemigrations app Migrations for 'app': project/app/migrations/0008_auto_20171010_1838.py - Alter field charge_type on charge - Alter field fee_type on fee - Alter field event_type on orderevent ./manage.py makemigrations app Migrations for 'app': project/app/migrations/0009_auto_20171010_1839.py - Alter field charge_type on charge - Alter field fee_type on fee - Alter field event_type on orderevent I am curious why new identical migrations continue to be created with updated migration file names when no changes are being made to the models between makemigrations and migrate commands. -
get def unicode string information in django
Hi I have a model that has a return statement like this. def __unicode__(self): return u'Car from: %s' % self.car_from If I call the model and print it, it shows. mymodel = CarFromData.objects.filter(user = self.user ) <QuerySet [<CarFromData: Car from: CarRoom 1>]> I would like to access the self.car_from in my view. So I can store the CarRoom1 inside a variable. I tried this way x = mymodel.model.__name__ but that does not give me that string information. -
django cms admin looks weird on heroku and unable to function
I'm having a problem with django cms after pushing to heroku. Django cms admin page is showing up without styling (plain html). Kindly refer to picture. It should look like this. It looks correct on local host. Django cms is also not functioning- such as unable to add pages. For your advice please, thank you. -
Changing the group of a model in Django Admin
For whatever reason I have three models related to authentication, but in Django Admin they show up in two different groups. For example: AUTHORIZATION ------------- Security Questions Users AUTHORIZATION AND AUTHENTICATION -------------------------------- Groups Seems like they should be under one group and I would like to move them to be under one group. I came across this Q/A from a few years ago: Adding a model in Django Admin to the User/Group models? Wonder if there is an easier way now in Django 1.11 like using a class Meta: in the model or in admin.py. Looking through the documentation and haven't come across anything yet.