Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
converting string to int, django rest framework, passing data from front end as formdata
One of my field in models accept integer, and i am using formdata() to send data from front-end to my rest api. After some research i came to know that formdata() converts everything to strings and so i am not able to do a successful post. my code at serializers at this moment is : class xyzSerializers(serializers.ModelSerializer): class Meta: model = Profile fields = ('__all__') Trying to find a solution i read about Field-Level-Validation in serializers of rest framework 'user' is the field which accepts value in integer and my new code is : class xyzSerializers(serializers.ModelSerializer): user = serializers.CharField() def validate_user(self, value): if not value: return 0 try: return int(value) except ValueError: raise serializers.ValidationError('You must supply an integer') class Meta: model = Profile fields = ('__all__') I am getting the same error, can some one please tell me the correct way to use field level validation. or also to convert string to int at serializers of rest api. Thanks -
How to filter on a field for a set of values
I have a model called products. The category belongs to this model. Now I can filter for this section field with a value. Actually I wanted to filter by multiple values for the same field Example: If I filter with ** phone ** (is a category) it works But for this section field, I need to filter by ** phone ** and ** cases ** filter class ProductFilter(filters.FilterSet): min_price = filters.NumberFilter(field_name="price", lookup_expr='gte') max_price = filters.NumberFilter(field_name="price", lookup_expr='lte') class Meta: model = Product fields = ['category', 'min_price', 'max_price' ] View class ProductListView(generics.ListAPIView): permission_classes = [IsAuthenticated] queryset = Product.objects.all() serializer_class = ProductListSerializer filter_backends = (filters.DjangoFilterBackend,) filter_class = ProductFilter How do I do that? Can someone help me? -
Django - invalid literal for int() with base 10: b'latest_start_date'
I dont know what happened, it worked fine yesterday. Traceback: File "D:\Users\...\env\lib\site-packages\django\core\handlers\exception.py" in inner 34. response = get_response(request) File "D:\Users\...\env\lib\site-packages\django\core\handlers\base.py" in _get_response 115. response = self.process_exception_by_middleware(e, request) File "D:\Users\...\env\lib\site-packages\django\core\handlers\base.py" in _get_response 113. response = wrapped_callback(request, *callback_args, **callback_kwargs) File "D:\Users\...\personal\views.py" in display_mobiles 69. return render(request, 'header.html', context) File "D:\Users\...\env\lib\site-packages\django\shortcuts.py" in render 36. content = loader.render_to_string(template_name, context, request, using=using) File "D:\Users\...\env\lib\site-packages\django\template\loader.py" in render_to_string 62. return template.render(context, request) File "D:\Users\...\env\lib\site-packages\django\template\backends\django.py" in render 61. return self.template.render(context) File "D:\Users\...\env\lib\site-packages\django\template\base.py" in render 171. return self._render(context) File "D:\Users\...\env\lib\site-packages\django\template\base.py" in _render 163. return self.nodelist.render(context) File "D:\Users\...\env\lib\site-packages\django\template\base.py" in render 937. bit = node.render_annotated(context) File "D:\Users\...\env\lib\site-packages\django\template\base.py" in render_annotated 904. return self.render(context) File "D:\Users\...\env\lib\site-packages\django\template\loader_tags.py" in render 150. return compiled_parent._render(context) File "D:\Users\...\env\lib\site-packages\django\template\base.py" in _render 163. return self.nodelist.render(context) File "D:\Users\...\env\lib\site-packages\django\template\base.py" in render 937. bit = node.render_annotated(context) File "D:\Users\...\env\lib\site-packages\django\template\base.py" in render_annotated 904. return self.render(context) File "D:\Users\...\env\lib\site-packages\django\template\defaulttags.py" in render 309. return nodelist.render(context) File "D:\Users\...\env\lib\site-packages\django\template\base.py" in render 937. bit = node.render_annotated(context) File "D:\Users\...\env\lib\site-packages\django\template\base.py" in render_annotated 904. return self.render(context) File "D:\Users\...\env\lib\site-packages\django\template\defaulttags.py" in render 309. return nodelist.render(context) File "D:\Users\...\env\lib\site-packages\django\template\base.py" in render 937. bit = node.render_annotated(context) File "D:\Users\...\env\lib\site-packages\django\template\base.py" in render_annotated 904. return self.render(context) File "D:\Users\...\env\lib\site-packages\django\template\loader_tags.py" in render 62. result = block.nodelist.render(context) File "D:\Users\...\env\lib\site-packages\django\template\base.py" in render 937. bit = node.render_annotated(context) File "D:\Users\...\env\lib\site-packages\django\template\base.py" in render_annotated 904. return self.render(context) File "D:\Users\...\env\lib\site-packages\django\template\defaulttags.py" in … -
how to paginate a ModelMultipleChoiceField when form loads in Django CreateView
I have to paginate a queryset when form loads in Django Createview. I am using ModelMultipleChoiceField as of now to list all the products,how can i implement pagination to this? forms.py class CustomUserForm(forms.ModelForm): first_name = forms.CharField(validators=[not_special_charactor]) last_name = forms.CharField(validators=[not_special_charactor]) class Meta: model = User fields = ( 'first_name', 'last_name', 'email','products') def __init__(self, company_id, *args, **kwargs): super(CustomUserForm, self).__init__(*args, **kwargs) self.fields['first_name'].required = True self.fields['last_name'].required = True self.fields["products"] = forms.ModelMultipleChoiceField( widget=forms.CheckboxSelectMultiple( attrs={ "class":"noti_select" } ), queryset = CustomerProduct.objects.filter( customer=company_id).filter(parent=None), required=False, ) views.py class CustomerUserCreateView(PermissionCheckMixin, CreateView, MultipleObjectMixin): form_class = CustomUserForm template_name = 'add-customer-user.html' raise_exception = True paginate_by = 10 def get_form_kwargs(self, *args, **kwargs): form_kwargs = super(CustomerUserCreateView, self).get_form_kwargs(*args, **kwargs) form_kwargs['company_id'] = Customer.objects.get( slug=self.kwargs['slug']) return form_kwargs def form_valid(self, form): user = form.save() user.company = Customer.objects.get(slug=self.kwargs['slug']) password = User.objects.make_random_password() user.set_password(password) user.save() return HttpResponseRedirect(reverse('customer_users', kwargs={'slug': user.company.slug})) def get_context_data(self, **kwargs): context = super(CustomerUserCreateView, self).get_context_data(object_list=object_list, **kwargs) context['customer'] = Customer.objects.get(slug=self.kwargs['slug']) context['activate'] = 'customers' return context I am getting all the products in my template from forms.I want to implement page number pagination. I need to select products the user can have access.Since there are large products, i wan't show all the products with pagination on user create form. How can i do this.I am new to django templates...please help me out. … -
Is it possible to show urls in django including request type?
I want to have a list with all the url in a django project with the type of request(GET,POST,PUT,DELETE) I already tried this pip install django-extensions and after this code on terminal python manage.py show_urls I get a list with all the urls, but it would be nice to have the request type aswell -
Django Admin LogEntry: how it works in non admin actions?
I am having some struggles how does exactly django.admin.LogEntry objects are created. Consider the following scenario: I have a bunch of functions which take a csv file with data that allow me to create multiple objects at one call (just iterate through the file, use the data and if data in given row is correct: create a Model instance). I want to make sure that that each of that creation will be logged. The question is: django docs are not very descriptive on how does LogEntry works and I am not sure if such actions (not taken in the admin panel itself) will be logged there. Also: will the LogEntries be created for the related objects or I have to trigger them manually? Does anybody got any experience with such scenarios and can share thoughts about it? -
How to set Authentication and Permission on django URLs for imported views
I want to use django REST framework's inbuilt API documentation. The problem is that I need it to be private with a login and I couldn't manage thus far. I do the following to create my API doc as documented: from rest_framework.documentation import include_docs_urls API_TITLE = "Cool title" API_DESCRIPTION = "Badass description" urlpatterns = [ path('docs/', include_docs_urls(title=API_TITLE, description=API_DESCRIPTION) That creates my docs, which is fantastic. But it is accessible by everyone even though I have set my permissions and authentications for all the endpoints to private. I did this like this in my configs: REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': ( 'rest_framework_jwt.authentication.JSONWebTokenAuthentication', 'rest_framework.authentication.SessionAuthentication', 'rest_framework.authentication.BasicAuthentication', ), 'DEFAULT_PERMISSION_CLASSES': ( 'rest_framework.permissions.IsAdminUser', ) } But even with this set I can access all site of the docs. So I am looking for a way to protect my URLs which I imported and thus have no classes or methods at my disposal to protect. (So I can't use any decorators on them). Then I tried using the login required decorator on my URL like so: path('docs/', login_required(include_docs_urls(title=API_TITLE, description=API_DESCRIPTION))), but it throws me the following error: django.template.exceptions.TemplateDoesNotExist: registration/login.html Is there a way of protecting such URLs? Help is very much appreciated! Thanks a lot in advance! -
Django - simple_history.models To capture who did changes in the database and integrate with the admin page
Django - simple_history.models To capture who did changes in the database and integrate with the admin page I want to have capture updated_by(who updated the changes in the filed.)But the updated_by columns does not updates and is always empty. I am able to capture uddated_timestamp but not updated_by. and it remains empty. I have installed django-simple-history,then installed _app of setting added 'simple_history' and in middleware 'simple_history.middleware.HistoryRequestMiddleware', As I saw in doc at https://django-simple-history.readthedocs.io/en/2.7.0/user_tracking.html I am pasting my codes here . Please help Models.Py from django.db import models from django.urls import reverse from django.utils import timezone from django.utils.text import slugify from django.core.validators import MaxValueValidator, MinValueValidator ## changes by rahul from django.db import transaction from simple_history.models import HistoricalRecords #from audit_log.models.fields import LastUserField, LastSessionKeyField from django.contrib.auth.models import User class Company(models.Model): class Meta: verbose_name_plural = "companies" name = models.CharField(max_length=128) def __str__(self): return self.name class Game(models.Model): company = models.ForeignKey('projects.Company', on_delete=models.PROTECT, related_name='projects') title = models.CharField('Game title', max_length=128) start_date = models.DateField('Game start date', blank=True, null=True) end_date = models.DateField('Game end date', blank=True, null=True) estimated_design = models.DecimalField('Estimated design hours', decimal_places=2, max_digits=10, blank=True, null=True, validators=[MinValueValidator(0.00), MaxValueValidator(10000)]) actual_design = models.DecimalField('Actual design hours', default=0, decimal_places=2, max_digits=10, blank=True, null=True, validators=[MinValueValidator(0.00), MaxValueValidator(10000)]) estimated_development = models.DecimalField('Estimated development hours', decimal_places=2, max_digits=10, blank=True, null=True, validators=[MinValueValidator(0.00), MaxValueValidator(10000)]) actual_development … -
How to count objects in django
Thank you all for always sharing your knowledge here. I have an issue with counting an object in Django. I am currently learning and working on a basic HR system and already have my views, models, et al set up. I plan to have an interface whereby I can print out employees count based on gender. The one I currently have set up is increasing the counts for both male and female any time I create a new employee. Please how do I correct this anomaly? views.py from django.contrib.auth.decorators import login_required from django.contrib.auth.models import User from django.shortcuts import render from django_tables2 import RequestConfig from django_tables2.export import TableExport from .models import Employee from .models import EmployeeFilter from .tables import EmployeeTable @login_required() def employees(request): filter = EmployeeFilter(request.GET, queryset=Employee.objects.all()) table = EmployeeTable(filter.qs) RequestConfig(request, paginate={"per_page": 15}).configure(table) count = Employee.objects.all().count() male_count = Employee.objects.filter(gender__contains='Male').count() female_count = Employee.objects.filter(gender__contains='Female').count() user_count = User.objects.all().count() export_format = request.GET.get("_export", None) if TableExport.is_valid_format(export_format): exporter = TableExport(export_format, table) return exporter.response("table.{}".format("csv", "xlsx")) return render(request, "employees/employees.html", { "table": table, "filter": filter, "count": count, "male_count": male_count, "female_count": female_count, "user_count": user_count, }) template.html {% extends "employees/base.html" %} {% load render_table from django_tables2 %} {% load django_tables2 %} {% load querystring from django_tables2 %} {% block content %} <!--Data … -
How do I make individual users in my project to make posts which are particular to them?
I need help with my program. I need to make a dynamic "Homepage" for users where they can see their past posts. I haven't tried anything since I am clueless. Please help. -
Getting error cannot import name 'six' from 'django.utils' when using Django 3.0.0 latest version
Currently I have upgraded version of Django 2.2 to 3.0 and suddenly getting error like below. ImportError: cannot import name 'six' from 'django.utils' I have checked Traceback is like below. Traceback (most recent call last): File "c:\Users\admin\.vscode\extensions\ms-python.python-2019.11.50794\pythonFiles\ptvsd_launcher.py", line 43, in <module> main(ptvsdArgs) File "c:\Users\admin\.vscode\extensions\ms-python.python-2019.11.50794\pythonFiles\lib\python\old_ptvsd\ptvsd\__main__.py", line 432, in main run() File "c:\Users\admin\.vscode\extensions\ms-python.python-2019.11.50794\pythonFiles\lib\python\old_ptvsd\ptvsd\__main__.py", line 316, in run_file runpy.run_path(target, run_name='__main__') File "C:\Python37\Lib\runpy.py", line 263, in run_path pkg_name=pkg_name, script_name=fname) File "C:\Python37\Lib\runpy.py", line 96, in _run_module_code mod_name, mod_spec, pkg_name, script_name) File "C:\Python37\Lib\runpy.py", line 85, in _run_code exec(code, run_globals) File "D:\production\myproject\erp_project\manage.py", line 10, in <module> execute_from_command_line(sys.argv) File "d:\production\myproject\venv\lib\site-packages\django\core\management\__init__.py", line 401, in execute_from_command_line utility.execute() File "d:\production\myproject\venv\lib\site-packages\django\core\management\__init__.py", line 377, in execute django.setup() File "d:\production\myproject\venv\lib\site-packages\django\__init__.py", line 24, in setup apps.populate(settings.INSTALLED_APPS) File "d:\production\myproject\venv\lib\site-packages\django\apps\registry.py", line 92, in populate app_config = AppConfig.create(entry) File "d:\production\myproject\venv\lib\site-packages\django\apps\config.py", line 90, in create module = import_module(entry) File "d:\production\myproject\venv\lib\importlib\__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1006, in _gcd_import File "<frozen importlib._bootstrap>", line 983, in _find_and_load File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 677, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 728, in exec_module File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed File "d:\production\myproject\venv\lib\site-packages\post_office\__init__.py", line 3, in <module> from .backends import EmailBackend File "d:\production\myproject\venv\lib\site-packages\post_office\backends.py", line 6, in <module> from .settings import … -
Register page couldn't register user
I have setup register page by Django. The URL of register input on IE, register page is ok, but I cliked 'register' button on page, no register form display. enter image description here users\urls.py urlpatterns = [ # register page re_path('^register/$', views.register, name='register'), ] users\views.py def register(request): """register new user""" if request.method != 'POST': # display blank register form form = UserCreationForm() else: # deal filled form form = UserCreationForm(data=request.POST) if form.is_valid(): new_user = form.save() # auto login, and redirect to home page authenticated_user =authenticate(username=new_user.username,password=request.POST['password1']) login(request, authenticated_user) return HttpResponseRedirect(reverse('learning_logs:index')) context = {'form': form} return render(request, 'users/register.html', context) register.html {% extends "learning_logs/base.html" %} {% block content %} <form method="post" action="{% url 'users:register' %}"> {% csrf_token %} {{ form.as_P }} <button name="submit">register</button> <input type="hidden" name="next" value="{% url 'learning_logs:index' %}" /> </form> {% endblock content %} -
Cannot install Pillow on Windows (Offline)
I downloaded the Pillow package from: https://pypi.org/project/Pillow/ The latest version is 6.2.1. But when I try to install it to my offline-computer, it gives the error: The header or library files could not be found for zlib, a required dependency when compiling pillow from source Then i tried downloading and installing it into my Internet connected PC and copied the installed folder in my venv to the offline system and placed it on the correct path (lib/site-packages). But when I run the command: python manage.py migrate It gives the same error again. My current Python version is 3.7. -
Django/i18n: how to translate method result in a template?
I am working on internationalization of my project. There is something I do not understand even reading Django documentation I have a view where I pass a context (a list) In my template, I loop on this list and run a method on each element of my list this method return a string ('string#1' or 'string#2' depending of the element) I would like to translate (en/fr) but I did not understand how to do it? Should I apply the translation in my models or in the template? Below a simplified code for an example models.py class mymodel(models.Model) def mymethod(self): condition = othermodel.objects.get(pk=self.ide) if condition == 1 : return 'string#1' # the string I want to translate else: return 'string#2' # the string I want to translate return '' views.py def test(request): mylist= _(["elt#1","elt#2","elt#3","elt#4","elt#5"]) return render(request, 'myapp/test.html', {'mylist': mylist}) test.html {% for element in mylist %} {{ element.mymethod }} {% endfor %} -
ModuleNotFoundError: No module named 'config' while running mypy
I have implemented mypy in my django rest framework but I am getting errors ModuleNotFoundError: No module named 'config' while running mypy.Is there any wrong with my django_settings_module in my mypy.ini file ? I used to run my project with the command python manage.py runserver --settings=config.settings.development which was working fine but while configuring this setting in the mypy it is giving me error. What I might be doing wrong ? mypy.ini [mypy] plugins = mypy_django_plugin.main, mypy_drf_plugin.main ignore_missing_imports = True files=**/*.py warn_unused_ignores = True strict_optional = True check_untyped_defs = True follow_imports = silent show_column_numbers = True [mypy.plugins.django-stubs] django_settings_module = config.settings.development settings directory /project /config __init__.py urls.py wsgi.py /settings base.py development.py wsgi.py app_path = os.path.abspath( os.path.join(os.path.dirname(os.path.abspath(__file__)), os.pardir) ) sys.path.append(os.path.join(app_path, "project")) os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings') application = get_wsgi_application() -
how to make an unlockscreen function and refer to the previous page they open before they lock it if they succeed login in django
Im trying to make a lock_screen function where you can lock the website , if you want to go to toilet or not , and login again if you want to unlock it , and refer to the last page they visit before they lock it The problem is , i put the name and the password right , but still redirect to lockscreen here's the view.py def unlockscreen(request): if request.method == 'POST': form = AuthenticationForm(data=request.POST) if form.is_valid(): username = form.cleaned_data.get('username') password = form.cleaned_data.get('password') path = request.META.get('HTTP_REFERER') guess = User.objects.get(username=username) identity = guess.id table2 = UserProfileInfo.objects.get(user_id=identity) role = table2.role user = authenticate(username=username,password=password) if user is not None: if role == 'Business Analyst': request.session['username'] = username request.session['role'] = role login(request, user) return HttpResponseRedirect('/home/') else : messages.error(request,"error1") else : messages.error(request,"error2") else : messages.error(request,"error3") form = AuthenticationForm() return render(request,"lock_screen.html",{"form":form}) #pretend the last page we visit is the index.html @cache_control(no_cache=True, must_revalidate=True, no_store=True) @login_required def index_view(request): if request.session.get('username'): username = request.session['username'] role = request.session['role'] print(username) return render(request, 'index.html',{"username":username , "role":role}) else : messages.error(request, "Login required") return HttpResponseRedirect('/') def lockscreen(request): del request.session['username'] return render(request, 'lock_screen.html') lock_screen.html <form method="post"> {% csrf_token %} <input type="text" name="username" value = {{request.user.username}} class ="form-control placeholder-no-fix" disabled=""> <br> <input type="password" name="password" placeholder="Password" … -
Detect changes in models and migrate automatically without have to run the migrations command
I want to create a new model on every button click in Django and migrate it without running migrations command. Is that possible??if yes,how? Thanks in advance.🙂 -
Display contents of a text file in Django template
I am attempting to create a file in simple website and then read the contents of the same in a variable inside a Django view function and parse the variable to the template to be displayed on web page. However, when I print the variable, it appears the same on cmd as is in the original text file, but the output on the web page has no formattings but appears like a single string. I've been stuck on it for two days. Also I'm relatively new to django and self learning it ''' file1 = open(r'status.txt','w',encoding='UTF-8') file1.seek(0) for i in range(0,len(data.split())): file1.write(data.split()[i] + " ") if i%5==0 and i!=0 and i!=5: file1.write("\n") file1.close() file1 = open(r'status.txt',"r+",encoding='UTF-8') d = file1.read() print(d) #prints on cmd in the same formatting as in text file return render(request,'status.html',{'dat':d}) **#the html displays it only as a single text string** ''' ''' {% block content %} {{dat}} {% endblock %} '''html page display -
Secure a file in endpoint with the same permissions as the endpoint in Django REST
I have a project in Django REST framework with model like this class Attachment attachment_type = models.PositiveSmallIntegerField(choices=constants.AttachmentTypes.CHOICES) creator = models.ForeignKey(User, related_name="attachments", on_delete=models.PROTECT) file = models.FileField(upload_to='uploads/%Y/%m/%d/', max_length=511) name = models.CharField(max_length=255) size = models.CharField(max_length=30) And ModelViewSet using the model with custom permissions class AttachmentViewSet(viewsets.ModelViewSet): queryset = models.Attachment.objects.all() Permissions for this ViewSet are based on a user roles and work fine. Problem is with permissions to a file field. It is now accessible to whoever has the link. I need the same permissions to a file as to Attachment endpoint. What is the proper way to do it? -
how to integrate keycloak with django and angular
i am using keycloak to login to my angular app instead of django rest API (simple token based authentication ) and i am following this below procedure and flow. so is correct? angular web page click on login went to keycloak login login successful and keycloak returned to angular app access key, id token , refresh token etc.. what is the next flow , what i need to send to django API from angular app , what i need to send fro django to angular? any suggestion? -
Optional virtual environment creation error
'"virtualenv"' is not recognized as an internal or external command, operable program or batch file.-is the error message that displayed after typing "mkvirtualenv " I am trying to create another virtual environment for a django project -
How to get name respect to that id form mysql table?
In my project i have crud like operation, so when i select department i save id of that item , and bind to table to show that inserted records , so when i bind department i want to bind name of that department not that id . pls help me in this.. Model.py class Department(models.Model): ACTIVE = 1 INACTIVE = 2 DELETED = 3 STATUS_CHOICES = ( (ACTIVE, 'active'), (INACTIVE, 'inactive'), (DELETED, 'deleted'), ) department_id = models.AutoField(primary_key=True) department_name = models.CharField(max_length=30, null=False) created_on = models.DateTimeField(auto_now_add=True, null=False) created_by = models.CharField(max_length=100, null=False) modified_on = models.DateTimeField(auto_now_add=True) modified_by = models.CharField(max_length=100) status = models.CharField(max_length=10, null=False, choices=STATUS_CHOICES) objects = UserManager() class Meta: managed = True db_table = "ht_department" def __str__(self): return self.department_id forms.py class EmpForm(ModelForm): class Meta: model = Employee fields = ["employee_id", "Name", "designation", "department_id", "manager_id", "date_of_joining","date_of_birth", "location_id", "email", "contact_number", "password", "created_by", "modified_by", "status", "user_type"] class dept(ModelForm): class Meta: model = Department fields = ["department_id", "department_name", "created_by", "modified_by", "status"] class EmpLoc(ModelForm): class Meta: model = Location fields = ["location_id", "location_name", "created_by", "modified_by", "status"] html <tbody id="myTable"> {% for employee in employees %} <tr> <td>{{ employee.employee_id}}</td> <td>{{ employee.Name}}</td> <td>{{ employee.designation}}</td> <td>{{ employee.department_id}}</td> <td>{{ employee.manager_id}}</td> <td>{{ employee.location_id}}</td> <td> <a href="#editEmployeeModal" class="edit" data-toggle="modal"><i class="material-icons" data-toggle="tooltip" title="Edit">&#xE254;</i></a> <a href="#deleteEmployeeModal" class="delete" … -
How to return data from a database for a logged-in user in Django Rest Framework?
Scenario: I have two APIs currently. A RegisterAPI and a LoginAPI. The RegisterAPI registers a new user and a LoginAPI allows them to access their details only. I used JWT authentication as well. I want to retrieve data from the database for a particular user who logs in using the Login API in DRF. My intention is to interact with the database but the problem is that I have two models in my serializer with a One-To-One relationship and I am confused about how to move forward with this issue. To get a clearer picture, view my code below: models.py: from django.db import models from django.contrib.auth.models import User class UserData(models.Model): user = models.OneToOneField(User, on_delete = models.CASCADE) company = models.CharField(max_length=100, blank=True, null=True) address = models.TextField() views.py: class RegisterAPI(APIView): permission_classes = [AllowAny] def post(self, request, format=None): serializer = UserDataSerializer(data=request.data) if serializer.is_valid(): content = { 'status': 'Thanks for registering'} return Response(content, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) class LoginAPI(viewsets.ModelViewSet): permission_classes = [IsAuthenticated] def list(self, request, *args, **kwargs): user_id = request.user.id queryset = User.objects.filter(id = user_id).first() user_serializer = UserSerializer(queryset, many = True) return Response(user_serializer.data) serializers.py: from rest_framework import serializers from users.models import UserData from django.contrib.auth.models import User class UserDataSerializer(serializers.ModelSerializer): class Meta: model = userData fields = … -
Filer and Multi-Tenant Problem (Postgres Schemas)
We are experiencing a weird problem. We use Postgresql Schemas and uses request middleware to switch between different schemas. Keep in mind that the Model -> Content Type ID links differ from schema to schema due to new models made after the first tenant was created. When I restart UWSGI and then on Tenant 1 goto the Filer->Folder page in the admin then it works well. Now when I go to Tenant 2 then it seems that filer is trying to use the content type id of the File model in Tenant 1 to lookup the real instance class. Could it be that the ctype_id is being cached somehow? -
draw polygon on google map and save for specific account
I want to draw polygon on google map to highlight the area and user can save and edit it whenever they want. I am a beginner and does not have a proper code.