Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
Search population based on country, city and age group
I have the work to render population based on the dropdown menu selected of country, city and age group. How do i format the json data? How is it going to look like? I want to do it using React and django. What is the best way to do this? Thanks. -
Error while running ./runtests.py from django
I took fork from https://github.com/django/django Running in python3 virtual env When I run ./runtests.py inside the tests folder I am getting this error Traceback (most recent call last): File "./runtests.py", line 19, in from django.utils.deprecation import ( ImportError: cannot import name 'RemovedInDjango20Warning' Tried running on django 2.0 and django 1.9 Traceback (most recent call last): File "./runtests.py", line 19, in from django.utils.deprecation import ( ImportError: cannot import name 'RemovedInDjango20Warning' I should be able to run all the test cases -
django-storages get uploaded url
I'm using django-storages in Django 2.x to upload files manually without any model. Here is my implementation using Django REST Framework (DRF) class MediaListCreateView(generics.ListCreateAPIView): """ List and create media """ serializer_class = MediaSerializer parser_classes = [FileUploadParser] upload_path = 'uploads/media/' def post(self, request, *args, **kwargs): if 'file' not in request.data: raise ParseError('Empty content') file = request.data.get('file') file_ = default_storage.open('{}{}'.format(self.upload_path, file.name), 'w') file_.write(file.read()) file_.close() return Response('Success', status=status.HTTP_200_OK) The file is saved in the S3 bucket, but now I want to return the full URL of the uploaded file in the response in place of Success. How can I get the full URL of the uploaded file? -
Unable to search using elasticsearch in django with django-elasticsearch-dsl-drf (Set fielddata=true on [title.raw])
I have followed the quick start guide shown here, in order to experiment with elasticsearch searching and a sample Django app I am playing with. Using elasticsearch 6.3.1 and latest django-elasticsearch-dsl-drf The results is the following error. RequestError at /search/movies/ RequestError(400, 'search_phase_execution_exception', 'Fielddata is disabled on text fields by default. Set fielddata=true on [title.raw] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory. Alternatively use a keyword field instead.') I have added in the django project an extra app named search_indexes. Here is the documents.py from this app. from django_elasticsearch_dsl import Index, fields from django_elasticsearch_dsl.documents import DocType from elasticsearch_dsl import analyzer from library.models import * # Name of the Elasticsearch index INDEX = Index('search_movies') # See Elasticsearch Indices API reference for available settings INDEX.settings( number_of_shards=1, number_of_replicas=1 ) html_strip = analyzer( 'html_strip', tokenizer="standard", filter=["standard", "lowercase", "stop", "snowball"], char_filter=["html_strip"] ) @INDEX.doc_type class MovieDocument(DocType): """Movie Elasticsearch document.""" id = fields.IntegerField(attr='id') title = fields.StringField( analyzer=html_strip, fields={ 'raw': fields.StringField(analyzer='keyword'), } ) summary = fields.StringField( analyzer=html_strip, fields={ 'raw': fields.StringField(analyzer='keyword'), } ) people = fields.StringField( attr='people_indexing', analyzer=html_strip, fields={ 'raw': fields.StringField(analyzer='keyword', multi=True), 'suggest': fields.CompletionField(multi=True), }, multi=True ) genres = fields.StringField( attr='genres_indexing', analyzer=html_strip, fields={ 'raw': fields.StringField(analyzer='keyword', multi=True), 'suggest': … -
Bug only in deploy mode and not when launch runserver
I have a problem when I deploy my Django app with WSGI, but not in dev mode. I use apache2. My user model is in authentification I've tried to migrate authentification first, but it doesn't work. I've also already tried deleting the database, but nothing's changed. Here is the stacktrace: [Wed Aug 07 10:36:25.814102 2019] [wsgi:error] [pid 5342:tid 140647152961280] [remote ::1:57686] mod_wsgi (pid=5342): Failed to exec Python script file '/home/roo/myproject/Challenges/wsgi.py'. [Wed Aug 07 10:36:25.814171 2019] [wsgi:error] [pid 5342:tid 140647152961280] [remote ::1:57686] mod_wsgi (pid=5342): Exception occurred processing WSGI script '/home/roo/myproject/Challenges/wsgi.py'. [Wed Aug 07 10:36:25.815237 2019] [wsgi:error] [pid 5342:tid 140647152961280] [remote ::1:57686] Traceback (most recent call last): [Wed Aug 07 10:36:25.815301 2019] [wsgi:error] [pid 5342:tid 140647152961280] [remote ::1:57686] File "/home/roo/myproject/venv/lib/python3.7/site-packages/django/apps/config.py", line 178, in get_model [Wed Aug 07 10:36:25.815308 2019] [wsgi:error] [pid 5342:tid 140647152961280] [remote ::1:57686] return self.models[model_name.lower()] [Wed Aug 07 10:36:25.815322 2019] [wsgi:error] [pid 5342:tid 140647152961280] [remote ::1:57686] KeyError: 'user' [Wed Aug 07 10:36:25.815333 2019] [wsgi:error] [pid 5342:tid 140647152961280] [remote ::1:57686] [Wed Aug 07 10:36:25.815336 2019] [wsgi:error] [pid 5342:tid 140647152961280] [remote ::1:57686] During handling of the above exception, another exception occurred: [Wed Aug 07 10:36:25.815339 2019] [wsgi:error] [pid 5342:tid 140647152961280] [remote ::1:57686] [Wed Aug 07 10:36:25.815344 2019] [wsgi:error] [pid 5342:tid 140647152961280] [remote … -
Template id Not working after moving Oscar package to my Application?
I am getting 404 error on my home page, I just move Django Oscar package to my application, but it's not working now, Before moving top my application it was wing good, Please let me know what is the issue. Whenever i am opening my website it's showing me error 404, I think there are some mistake in my urls.py file Here are my settings.py file... """ Django settings for frobshop project. Generated by 'django-admin startproject' using Django 1.11.23. For more information on this file, see https://docs.djangoproject.com/en/1.11/topics/settings/ For the full list of settings and their values, see https://docs.djangoproject.com/en/1.11/ref/settings/ """ import os from oscar.defaults import * location = lambda x: os.path.join(os.path.dirname(os.path.realpath(__file__)), '..', x) PROJECT_DIR=os.path.dirname(__file__) # Build paths inside the project like this: os.path.join(BASE_DIR, ...) BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) https://docs.djangoproject.com/en/1.11/howto/deployment/checklist/ SECRET_KEY = 'bg-a-t#7--wbz$rie*2n%1c-9j#0v8own&5+t7^kduqzc&j5nm' DEBUG = True ALLOWED_HOSTS = [] # Application definition INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.sites', 'django.contrib.flatpages', 'compressor', 'widget_tweaks', 'haystack', 'treebeard', 'sorl.thumbnail', 'django_tables2', #'south', #oscar apps 'oscar', 'oscar.apps.analytics', 'oscar.apps.checkout', 'oscar.apps.address', 'oscar.apps.shipping', 'oscar.apps.catalogue', 'oscar.apps.catalogue.reviews', 'oscar.apps.partner', 'oscar.apps.basket', 'oscar.apps.payment', 'oscar.apps.offer', 'oscar.apps.order', 'oscar.apps.customer', 'oscar.apps.search', 'oscar.apps.voucher', 'oscar.apps.wishlists', 'oscar.apps.dashboard', 'oscar.apps.dashboard.reports', 'oscar.apps.dashboard.users', 'oscar.apps.dashboard.orders', 'oscar.apps.dashboard.catalogue', 'oscar.apps.dashboard.offers', 'oscar.apps.dashboard.partners', 'oscar.apps.dashboard.pages', 'oscar.apps.dashboard.ranges', 'oscar.apps.dashboard.reviews', 'oscar.apps.dashboard.vouchers', 'oscar.apps.dashboard.communications', 'oscar.apps.dashboard.shipping', ] SITE_ID = 1 MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', … -
djongo.sql2mongo.SQLDecodeError while updating / reading rows
I am using djongo as MongoDB conenctor for my Django project. I am getting below error, in create and update APIs djongo.sql2mongo.SQLDecodeError: FAILED SQL: UPDATE Read API giving matching query does not exist on Foreign key field Batch whereas when I check in DB the respective row is there. Setup: Django==2.1 pymongo==3.8.0 sqlparse==0.2.4 djongo==1.2.33 #model.py class Batch(models.Model): batch_number = models.IntegerField(unique=True) class Product(models.Model): batch = ForeignKey(Batch, on_delete=CASCADE) serial_number = models.CharField(max_length=255, unique=True) macid = models.CharField(max_length=100, unique=True) product_name= models.CharField(max_length=100) product_status = models.CharField(max_length=100, default='Unallocated') device_ip = models.GenericIPAddressField(default="10.0.0.1") white_label = models.CharField(max_length=100, default='') hardware_version = models.CharField(max_length=100, default='Unknown') last_online = models.DateTimeField(auto_now=True) modified_date = models.DateTimeField(auto_now=True) created_date = models.DateTimeField(auto_now_add=True) def set_ip(self, ip): self.device_ip = ip self.save() #code #getting IP is serializer from API payload. product = Product.model.get(macid='0C:F0:B4:24:69:3A') product.set_ip(IP) Below is the traceback of error #### Traceback <The complete stack trace of the error.> Internal Server Error: /productstatus Traceback (most recent call last): File "/usr/lib/python3.6/site-packages/djongo/sql2mongo/query.py", line 819, in parse return handler(self, statement) File "/usr/lib/python3.6/site-packages/djongo/sql2mongo/query.py", line 939, in _update self._query = UpdateQuery(self.db, self.connection_properties, sm, self._params) File "/usr/lib/python3.6/site-packages/djongo/sql2mongo/query.py", line 312, in __init__ super().__init__(*args) File "/usr/lib/python3.6/site-packages/djongo/sql2mongo/query.py", line 74, in __init__ self.parse() File "/usr/lib/python3.6/site-packages/djongo/sql2mongo/query.py", line 331, in parse c = self.where = WhereConverter(self, tok_id) File "/usr/lib/python3.6/site-packages/djongo/sql2mongo/converters.py", line 24, in __init__ self.parse() File "/usr/lib/python3.6/site-packages/djongo/sql2mongo/converters.py", line … -
How to change the value of model field when button is clicked in django?
I'm making a django app in which the homepage shows list of internships available of different companies.A user of usertype=Student can view those internships. Each internship list view has a button named 'Apply' when apply is clicked I want the booleanfield in my django model(StudentApplying) named applied to be set to true. So that the company who created this post can view the list of students who applied and then can accept/reject them. I don't want to use ajax,javascript etc unless there is no way I can't do it with django itself. models.py from django.db import models from InternsOnboardMain.models import internshipPost from django.contrib.auth.models import User class StudentApplying(models.Model): companyName = models.ForeignKey(internshipPost,on_delete=models.CASCADE) studentName = models.ForeignKey(User,on_delete=models.CASCADE) applied = models.BooleanField(default=False) view.py(I've tried this but it is not working) from django.shortcuts import render, redirect,get_object_or_404 from django.contrib import messages from django.contrib.auth.decorators import login_required from .models import StudentApplying from django.contrib.auth.models import User from django.db.models import F def applyStatus(request): if request.GET.get('applybtn'): profil = get_object_or_404(StudentApplying, created_by=request.user) profil.applied = True profil.save(update_fields=["applied"]) return redirect('InternsOnboard-Home') I have not used any forms.py html file -
Best place to retry a task in Django: requests or celery task
I am hitting an API using requests library in Django inside a celery task. To be very specific, it fetches some record from database, prepares a json and does a POST request. In the certain case scenario, the call fails with 500 error code. I want to retry the POST request again. What's the best way to go about it and why? Retry the Celery task itself (See implementation) Retry the request using urllib.util.retry (See full implementation) -
How to download the multiple bokeh images as a single report
My application is hosted on Django and one of the html pages shows multiple bar graphs which are drawn using Bokeh. I know we can download each graph separately by using SaveTool icon which comes with Bokeh. Now my requirement is I want to have a export button in the page, when I click on export button, all the images should be downloaded in a single pdf file or any other format what ever is the easier option to implement. Please guide me how can I achieve this? Thanks In Advance. -
Django prefetch_related seem to not work as expected
Descirption There is a Foo model that has a ForeignKey field bar: class Foo(models.Model): ... bar = models.ManyToManyField('bar.Bar', related_name='some_bar') ... Also Foo has get_config() method which returns its fields including bar like: def get_config(self): return { ... 'bar': map(lambda x: x.get_config(), self.bar.all()) ... Now there are 10,000 rows of Foo in the database. There are some Bar rows as well. Trying to retrieve the data about 10,000 Foo including the nested Bar data: query = Foo.objects.all().prefetch_related('bar') return [obj.get_config() for obj in query] Problem The query executes around 6 seconds. If there is no bar field - only 400 milliseconds. The prefetch seems to not work completely bar.get_config() seem to hit the database for each iteration step. It is supposed to simply load all Bar objects once and get config from that bar-query to populate each foo config. -
Django custom management commands still ouputs errors
I'm just trying to use Django mixer library to generate users. Sometimes, when then username already exists, there's an error, and even though I did a try-except and the loop continues, which implies I catch the right exception, the error is displayed (django.db.utils.IntegrityError: Mixer (): ERROR: the value of a duplicated key breaks the unique constraint « auth_user_username_key »). How to hide those errors? class Command(BaseCommand): help = "Populate database for testing purposes only" def handle(self, *args, **options): # Generate a random user for i in range(4000): try: user = mixer.blend(User) person = Person.objects.get(user=user) except IntegrityError: continue -
How to display the image from ImageField() in Django admin interface?
I want to display a small thumbnail-like image in my Django admin interface. How should I do this? Also, It doesnt seem to display any SVG files. Please do help models.py: from django.db import models import os from PIL import Image from datetime import date import datetime from .validators import validate_file_extension import base64 def get_directory_path(instance, filename): today = date.today() t = datetime.datetime.now() day, month, year = today.day, today.month, today.year hour, minutes, seconds = t.hour, t.minute, t.second filename = str(day) + str(month) + str(year) + str(hour) + str(minutes) + str(seconds) + '.png' dir = 'media' path = '{0}/{1}'.format(dir, filename) return path class Image(models.Model): image = models.FileField(upload_to = get_directory_path, null = True , validators=[validate_file_extension]) created_date = models.DateTimeField(auto_now = True) def __str__(self): return str(self.id) -
What signals.py should be for Django Rest Password Reset?
What signals.py should be for Django Rest Password Reset? Or is there another way to set up password reset functionality? -
.only().prefetch_related() gives 'ManyToOneRel' object has no attribute 'attname'
i am fetching required fields of a table after a select_related() and prefetch_related() on the same query using .only() I can't seem to get the result from prefetch_related probably because .only() is restricting access to its result ? I have tried adding prefetch_related field in .only() as well but to no avail. Feedback.objects.all().select_related( 'feedback_option' ).only( 'feedback_option', # tried with and without either one or both of the following 'feedback__remarks', 'feedback__remarks__text' ).prefetch_related( Prefetch( 'feedback__remarks', queryset=FeedbackRemark.objects.all().only('text'), ), ) I am getting the following exception because of this. AttributeError: 'ManyToOneRel' object has no attribute 'attname' I am using django 1.10.5 -
How to create a relative max-length constraint on Many-to-Many field in django?
I'm working on an educational django project as an intern and have got trouble with a database constraint on length of many-to-many field. I have a Trip model that contains a capacity field which is an IntegerField and a passeger field which is many-to-many. So I want to create a constraint that number of passengers of a trip never get more than trip's capacity. Can anybody help me with this problem? I have tied the CheckConstraints but faild to handle it with join attribute. class Trip(models.Model): WAITING_STATUS = 'wa' CLOSED_STATUS = 'cl' IN_ROUTE_STATUS = 'in' DONE_STATUS = 'dn' STATUS_CHOICES = [ (WAITING_STATUS, 'waiting'), (CLOSED_STATUS, 'closed'), (IN_ROUTE_STATUS, 'in route'), (DONE_STATUS, 'done') ] source = gis_models.PointField() destination = gis_models.PointField() is_private = models.BooleanField(default=False) passengers = models.ManyToManyField(Member, through="Companionship", related_name='partaking_trips') groups = models.ManyToManyField(Group, through="TripGroups") car_provider = models.ForeignKey(Member, on_delete=models.SET_NULL, related_name='driving_trips', null=True) status = models.CharField(max_length=2, choices=STATUS_CHOICES) capacity = models.PositiveSmallIntegerField(validators=[MaxValueValidator(20)]) start_estimation = models.DateTimeField() end_estimation = models.DateTimeField() trip_description = models.CharField(max_length=200, null=True) class Companionship(models.Model): member = models.ForeignKey(Member, on_delete=models.CASCADE) trip = models.ForeignKey(Trip, on_delete=models.CASCADE) source = gis_models.PointField() destination = gis_models.PointField() I got error "joined field references are not permitted in this query" when tried to migrate. -
Uncaught TypeError: Cannot read property 'showExportPDFDialog' of undefined at exportToPDF
I try to achieve a method that when I click the button, the webpage can show different views(based on which button I click). But after I run the server, I get this: VM2134:21 Uncaught TypeError: Cannot read property 'showExportPDFDialog' of undefined. I created button divs and used ajax. So if I click Page_1/Page_2/Page_3, the webpage can show up different content. I initial variables Page_1/2/3 and sent them back to Django. In the Django, I will compare data. If they are matched, it will jump to the desired html file web.html <button id="Page_1">customer</div> <button id="Page_2">mobile</div> <button id="Page_3">meeting</div> <script type="text/javascript"> $(document).ready(function(){ var id="Page_1" $("#Page_1").click(function(){ $.ajax({ url:"{% url "sheet" %}", data:{Page_1:id}, success:function(result){$("#vizContainersk").html(result);} }); }); }); ..... the rest of ajax are same as above one view.py @api_view(['GET']) def get_tableau_url(request): return render(request, 'web.html') def sheet(request): url ='http://xx.xx.xxx.xx:8000/trusted?username=some_name&target_site=demo' result = requests.post(url, timeout=15) context={} context['token'] = result.text q1 = request.GET.get('Page_1') s1 = "Page_1" q2 = request.GET.get('Page_2') s2 = "Page_2" q3 = request.GET.get('Page_3') s3 = "Page_3" if (q1 == s1): return render(request, 'sheet0.html', context) if (q2 == s2): return render(request, 'sheet1.html', context) if (q3 == s3): return render(request, 'sheet2.html', context) sheet0.html var viz; function initViz() { var containerDiv = document.getElementById("vizContainer"); var options = { width: '1300px', height: … -
how to search multiple classes in the model
i have a django project that include 1 model file consist of 2 classes class Folder class suspect Note these 2 classes are not related. i have a search form that allow user to filter in both classes. based on the answer of this question Django search fields in multiple models i used the itertools and import chain but i did not success in returning the correct result. views.py from django.db.models import Q from itertools import chain def searchFolder(request): print("search function") query = request.GET.get('q') folders = Folder.objects.filter(Q(FolderNum__icontains= query)) suspects = suspect.objects.filter( Q(suspect_name__icontains=query)| Q(suspect_father_name__icontains=query)| Q(suspect_mother_name__icontains=query)| Q(content__icontains=query)| Q(create_date__icontains=query) ).distinct() result = chain(folders,suspects) print(result) return render(request,'blog/update2.html',{"result":result}) the result displayed on the templates is <itertools.chain object at 0x000001ACF217DC88> -
Get current user in tasks.py Celery-Django
I'm using Celery in a Django project and I'm trying to get the current user in file tasks.py. I don't want to use "User.objects.get(id)" because I can't pass an argument (id) to the function. Is there something similar to "request.user" that I can use? Thanks a lot. -
django edit inline-formset data
i have a department form with inline formset for deparment's IP list. i'm trying to show the existing department and it's IPs and edit them if needed, but when i submit the form, change_data for form works fine but formset.has_changed always return true. I can add department using this form and formset in another template and everything works fine. but here i want to edit the form(add/remove or edit ips). models.py class Department(models.Model): name = models.CharField(unique=True, max_length=100) username = models.CharField(max_length=100) password = models.CharField(max_length=200) class Meta: managed = False db_table = 'department' class DepartmentIps(models.Model): department = models.ForeignKey(Department, models.DO_NOTHING) department_ip_from = models.CharField(unique=True, max_length=15) department_ip_to = models.CharField(unique=True, max_length=15) class Meta: managed = False db_table = 'department_ips' forms.py class DepartmentForm(ModelForm): class Meta: model = Department DepartmentIPFormset = inlineformset_factory(Department, DepartmentIps, exclude=('department',), widgets={'department_ip_from': forms.TextInput( attrs={'size': '6', 'class': 'form-control'), 'department_ip_to': forms.TextInput( attrs={'size': '6', 'class': 'form-control'), }, extra=0, can_delete=True, validate_min=True, min_num=1) views.py def setting_department(request, department=1): currnet_d = Department.objects.get(id=department) if request.method == "POST": if 'add-department' in request.POST: department_form = DepartmentForm(request.POST) department_formset = DepartmentIPFormset(request.POST or None, instance=department_form.instance) if department_form.is_valid() and department_formset.is_valid(): new_department = department_form.save() department_formset.save() if 'edit-department' in request.POST: department_form = DepartmentForm(request.POST, prefix='edit', instance=currnet_d) department_formset = DepartmentIPFormset(request.POST or None, prefix='editips') print(department_formset.has_changed()) for formss in department_formset: print(formss.changed_data) print(department_form.has_changed()) department_form = DepartmentForm() … -
Pass JWT token as authorization header to url tag in django template
I want to send authorization header with djnago url template tag. But i am unable to find a solution I tried sending authorization header as query parameter but when i receive the token, i am unable to modify the request header in django views. It only allows to modify the custom header -
Django: IntegrityError when migrating after adding foreign key field
I have three models as follows in a Django app named markets: class Market(models.Model): title = models.CharField(max_length=50, default="") current_price = models.DecimalField(max_digits=5, decimal_places=2, default=0.50) description = models.TextField(default="") shares_yes = models.IntegerField(default=0) shares_no = models.IntegerField(default=0) b = models.IntegerField(default=100) cost_function = models.IntegerField(default=0) open = models.BooleanField(default=True) def __str__(self): return self.title[:50] def get_absolute_url(self): return reverse('market_detail', args=[str(self.id)]) class Price(models.Model): market = models.ForeignKey( Market, on_delete=models.CASCADE, related_name='prices', default=None) price = models.DecimalField( max_digits=5, decimal_places=2, default=0.50) price_date = models.DateTimeField( default=now, blank=True) def __str__(self): return str(self.price) def get_absolute_url(self): return reverse('market_list') class Share(models.Model): user = models.ForeignKey('users.CustomUser', on_delete=models.CASCADE, related_name='user_shares', default=None) market = models.ForeignKey( Market, on_delete=models.CASCADE, related_name='market_shares', default=None) share = models.IntegerField(default=0) transaction_date = models.DateTimeField( default=now, blank=True) def __str__(self): return str(self.share) def get_absolute_url(self): return reverse('market_list') I would like to add the following foreign key field to the Price model: user = models.ForeignKey('users.CustomUser', on_delete=models.CASCADE, related_name='user_prices', default=None) When I run makemigrations on markets, there's no issue. But when I try to actually migrate the database, I get the following error: django.db.utils.IntegrityError: column "user_id" contains null values Why is that? I had no issues adding a user field to the Share model, so am not clear on why I run into problems when also looking to add it to Price. -
Call callable function in django-ratelimit
I have code as follow: callables function def get_limited_num(group, request): if request.user.is_authenticated: qs = NumberOfLimitedLogin.objects.all() if qs is None: return '1/d' data = qs.first() return '{0}/{1}'.format(data.numer, data.unit) return '1/d' ratelimit function @ratelimit(key='post:email', rate=????, method=['POST']) def demo(request): return 'hello' I want to replace ? by the first function, but I don't know how to call. Help me, please. -
Django rest framework | Knox authentication password not hashed in database
I have created serializer for registering users in Django with djangorestframework. I am also using django-rest-knox for token authentication. Problem is that passwords are not hashed in database when creating users. Below is the code of serializer: class RegisterSerializer(serializers.ModelSerializer): class Meta: model = User fields = ('id', 'username', 'email', 'password') extra_kwargs = {'password': {'write_only': True}} def create(self, validated_data): # user = User.objects.create_user( # validated_data['username'], validated_data['email'], validated_data['password']) user = User( username=validated_data['username'], email=validated_data['email']) user.set_password(validated_data['password']) user.save() return user Please note that I have tried both commented and uncommented methods of creating user in the above code. In both cases, passwords are saved as raw in database. Below is the part of settings.py related to implementing knox token authentication: REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': ('knox.auth.TokenAuthentication',) } Any suggestions why password are not hashed? -
Test UpdateView for useraccounts application
Test doesn't give status_code 302 in user profile UpdateView and so there's no updates occurs on the object the model code class User(AbstractBaseUser, PermissionsMixin): ''' This a replaced user profile instead of the default django one ''' language_choices=[('en',_('English')),('se',_('Swedish'))] email=models.CharField(verbose_name=_('Email'), max_length=128, blank=False, unique=True) first_name=models.CharField(verbose_name=_('First Name'), max_length=128) last_name=models.CharField(verbose_name=_('Last Name'), max_length=128) joined_at=models.DateField( verbose_name=_('Joined at'), auto_now_add=True, blank=False ) language=models.CharField( verbose_name=_('Language'), max_length=2, choices=language_choices, default=language_choices[0][0] ) active=models.BooleanField(verbose_name=_('Active'), default=False) is_superuser=models.BooleanField(verbose_name=_('Is Superuser'), default=False) is_active=models.BooleanField(verbose_name=_('Is Active'), default=True) is_staff=models.BooleanField(verbose_name=_('Is Staff'), default=False) The form code class EditUserForm(UserChangeForm): ''' Profile form to update existing user information ''' # error message for email matches error_messages = { 'email_mismatch': _("The two email fields didn't match."), } # create field for email email1 = forms.EmailField( label=_("Email"), widget=forms.EmailInput, help_text=_("If you change your email your account will be inactive untill your reactivate by email link."), ) # get the email from confirmed email field email2 = forms.EmailField( label=_("Confirm Email"), widget=forms.EmailInput, help_text=_("Enter the same email as before, for verification."), ) # hide password field password = ReadOnlyPasswordHashField(label="Password") class Meta: ''' Initial fields and model for the form ''' model = models.User fields = ('first_name','last_name','email1','email2', 'language') def clean_email2(self): ''' Method for if email and confirmed email are the same This method works when confirmed email cleared ''' # get …