Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
How to return values without breaking a function [duplicate]
I'm generating an html file to print in a thermal printer. But since I can't use django template tags I'm generating it on the views.py. Since I can't predict the item number, I was using a loop. def total(): for ordered_item in ordered_items: title = ordered_item.food.title['tm'] price = ordered_item.food_size.price quantity = ordered_item.quantity return str(title),str(price),str(quantity) And I'm using that here: html=""" <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Use PyQt5 to print thermal receipts</title> </head> <body> <img src='http://c.biancheng.net/cpp/templets/new/images/logo.jpg?v=3.994' style="align-items: center;" width="130" height="130"/> <div id="capture"> <div class="print_container"> <h3>Market Name</h3> <span>---------------------------------------</span> <br> <span>Order number: """ + str(order.code) + """ </span> <br> <br> <span>Order time: """ + str(order.created) + """</span> <br> <br> <span>Cashier: """ + str(order.waiter) + """</span> <br> <span>---------------------------------------</span> <div class="section4"> <div> <table> <thead> <tr> <th width="110">Product name</th> <th width="80">Unit price</th> <th width="30">Quantity</th> </tr> </thead> <tbody> <tr> <td>""" + str(total()) + """</td> </tr> </tbody> </table> </div> <br> <span>---------------------------------------</span> <br> <div class="total"> <span>Total : """ + str(order.total_cost) + """</span> <br><br> <span>Paid : """ + str(order.paid) + """ </span> <br><br> <span>Change : """ + str(change) + """ </span> </div> <br> <span>---------------------------------------</span> </div> <div class="section5"> <span>Thank you for your patronage! </span> </div> </div> </div> </body> </html> """ But my function exits after the first loop. Is … -
Why can't select one object in django
I'm creating a ecommerce store using django And tried s many things to do this.index page is working pretty well but I want select specific product when I click .ex: when I click a shoe I want to enter shoe detail page with shoe image and all the necessary details.Here is my home page.And also I highly recommend to check my all code because you can't get any idea with only this code.github source code here.thanks dinindu {% extends 'store/main.html'%} {% load static %} {% block content %} <style> img:hover{ opacity: 0.5; } </style> <div class="row"> {% for product in products %} <div class="col-lg-4"> <a href="{% url 'productDetail' Product.name %}"><img class="thumbnail" src="{{product.imageURL}}"></a> <div class="box-element product"> <h6><strong>{{product.name}}</strong></h6> <hr> <button data-product="{{product.id}}" data-action="add" class="btn btn-outline-secondary add-btn update-cart">Add to Cart</button> <h4 style="display: inline-block; float: right"><strong>Rs {{product.price}}</strong></h4> </div> </div> {% endfor %} </div> {% endblock content %} -
Error 0 connecting to localhost:6379. Error
Got strange redis error Error 0 connecting to localhost:6379. Error. It comes time to time but it's not permanent or reproduceable. I'm using redis-server v3.0.6 and redis==3.5.3, channels_redis==2.4.2 python packages for client connection alongside with django framework. -
Django login state isn't saving
I'm using Django and React to create a login page. When the user clicks on the submit button, I send an Axios POST request to my Django server to authenticate and login. In the login function, printing request.user works as intended. But as soon as the scope of the function is left, printing request.user prints AnonymousUser. I've talked to some people about it and they seem to think it's because cookies aren't persisting, but we haven't been able to solve the problem. Any guidance would be appreciated. // REACT FORM function submitHandler(event) { event.preventDefault(); const state = login ? "login" : "signup"; axios .post(`http://localhost:8000/auth/${state}`, { username: username, password: password, }) .then((response) => { setRedirectMessage(response.data); axios .post("http://localhost:8000/auth/user") }) .catch((err) => alert(err.response.data)); } # LOGIN REQUEST (/auth/login) @require_POST @csrf_exempt def auth_login(request): if request.user.is_authenticated: return HttpResponseBadRequest("You are already logged in") username, password = get_credentials(request) user = authenticate(username=username, password=password) if user is None: return HttpResponseBadRequest("Those credentials do not exist") login(request, user) print(user) # PRINTS CORRECTLY print(request.user) # PRINTS CORRECTLY return HttpResponse("You have successfully logged in with username " + username) # GET REQUEST TO CHECK LOGIN STATE (auth/user) @csrf_exempt def get_user(request): print(request.user) return HttpResponse("Hey there") -
How to connect to a signal while some method calls?
For example I have the model below. class MyModel(models.Model): ........ def some_method(self): .... At some point I will call this method somewhere in the view. Whenever this method gets called I want to call a django signal. How can I do this ? -
save() prohibited to prevent data loss due to unsaved related object 'student'?
There is m2m relationship models.py: class Student(models.Model): name = models.CharField(max_length=249) class Course(models.Model): name = models.CharField(max_length=249) students = models.ManyToManyField(Student, through='Connect') class Connect(models.Model): student = models.ForeignKey(Student, on_delete=models.SET_NULL, null=True) course = models.ForeignKey(Course, on_delete=models.SET_NULL, null=True) views.py: class CreateStudent(LoginRequiredMixin, CreateView): login_url = '/admin/' redirect_field_name = 'index' template_name = 'app/create_student.html' model = Student fields = ('name',) def form_valid(self, form): self.object = form.save(commit=False) for student in form.cleaned_data['name']: connect = Connect() connect.student = self.object connect.course__name = 'math' connect.save() return super(ModelFormMixin, self).form_valid(form) how to do what when creating a Student instance the default value was automatically added Course instance And how create in view method to define default Group p r -
Accessing a cookie set in template using document.cookie in a django View
I'm trying to use a cookie to store an integer value which will then be used to determine the range of data to be displayed on the next page. I am currently using the function document.cookie="name=tom" I've checked my browser storage and the cookie is stored there. And trying to access the cookie via a django view using request.COOKIES['name'] which is unsuccessful. I'm new to django so any info on why this doesn't work and best practice ways of managing variables between js and Python would be really helpful. Thanks! -
Django - TypeError - quote_from_bytes() expected bytes
I'm getting started with Django. I created a Create View for one of my models and got this Error message. I had the following output on my Django-server-website: Environment: Request Method: POST Request URL: http://127.0.0.1:8000/blog/create/ Django Version: 2.0.7 Python Version: 3.8.5 Installed Applications: ['django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'products', 'pages', 'blog'] 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.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware'] Traceback: File "/home/mau/Dev/tryDjango/lib/python3.8/site-packages/django/core/handlers/exception.py" in inner 35. response = get_response(request) File "/home/mau/Dev/tryDjango/lib/python3.8/site-packages/django/core/handlers/base.py" in _get_response 128. response = self.process_exception_by_middleware(e, request) File "/home/mau/Dev/tryDjango/lib/python3.8/site-packages/django/core/handlers/base.py" in _get_response 126. response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/home/mau/Dev/tryDjango/lib/python3.8/site-packages/django/views/generic/base.py" in view 69. return self.dispatch(request, *args, **kwargs) File "/home/mau/Dev/tryDjango/lib/python3.8/site-packages/django/views/generic/base.py" in dispatch 89. return handler(request, *args, **kwargs) File "/home/mau/Dev/tryDjango/lib/python3.8/site-packages/django/views/generic/edit.py" in post 172. return super().post(request, *args, **kwargs) File "/home/mau/Dev/tryDjango/lib/python3.8/site-packages/django/views/generic/edit.py" in post 142. return self.form_valid(form) File "/home/mau/Dev/tryDjango/src/blog/views.py" in form_valid 23. return super().form_valid(form) File "/home/mau/Dev/tryDjango/lib/python3.8/site-packages/django/views/generic/edit.py" in form_valid 126. return super().form_valid(form) File "/home/mau/Dev/tryDjango/lib/python3.8/site-packages/django/views/generic/edit.py" in form_valid 57. return HttpResponseRedirect(self.get_success_url()) File "/home/mau/Dev/tryDjango/lib/python3.8/site-packages/django/http/response.py" in init 407. self['Location'] = iri_to_uri(redirect_to) File "/home/mau/Dev/tryDjango/lib/python3.8/site-packages/django/utils/encoding.py" in iri_to_uri 151. return quote(iri, safe="/#%[]=:;$&()+,!?*@'~") File "/usr/lib/python3.8/urllib/parse.py" in quote 839. return quote_from_bytes(string, safe) File "/usr/lib/python3.8/urllib/parse.py" in quote_from_bytes 864. raise TypeError("quote_from_bytes() expected bytes") Exception Type: TypeError at /blog/create/ Exception Value: quote_from_bytes() expected bytes Can anyone tell me what is wrong? -
Check permissions for serialized child objects using Guardian
I have three models where one Document has many Blocks and one Block has many Comments. class Document(models.Model): name = models.Charfield() class Block(models.Model): document = models.ForeignKey(to=Document) class Comment block = models.ForgeinKey(to=Block) Users can have permissions for Document which allows them to see all Blocks in it. Users can also add Comments to any Block which they can share if other users. I use django-guardian to manage object-based permissions. I have created a RetrieveAPIView using Django Rest Framework to make the Document available. class DocumentDetailView(PermissionRequiredMixin, RetrieveAPIView): serializer_class = DocumentSerializer permission_required = "document.view_document" To include all blocks and their comments in that view, I use the following serializers (omitted class Meta for brevity): class DocumentSerializer(serializers.ModelSerializer): blocks = BlockSerializer(many=True, source="block_set") class BlockSerializer(serializers.ModelSerializer): comments = serializers.CommentSerializer(many=True, source="comment_set") class CommentSerializer(serializers.ModelSerializer): class Meta: model = Comment I would like to restrict the comments included in DocumentDetailView to those to which a user has permissions. Following the logic of django-guardian I would use get_objects_for_users(), to filter down the QuerySet of Block.comment_set.all(). Yet, I don't know where to do this. I guess to restrict the comments to those available to request.user, the permission-based filtering should be done in the DocumentDetailView, but I don't see how to do this … -
Webkit Scrollbar CSS not Changing
I have this django html file, and when adding inline style I see no changes for the scroll bar. I've also tried creating a separate stylesheet, and that still does not override the scrollbar. {% load static %} <!doctype html> <html lang="en"> <head> <!-- Required meta tags --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- Bootstrap CSS --> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-+0n0xVW2eSR5OomGNYDnhzAbDsOXxcvSN1TPprVMTNDbiYZCxYbOOl7+AMvyTG2x" crossorigin="anonymous"> <link href="{% static 'navbar.css' %}", rel="stylesheet" type="text/css"> <link href="{% static 'style.css' %}", rel="stylesheet" type="text/css"> <title>{% block title %}Base Default Title{% endblock %}</title> </head> <style> body { color: black; background-color: white; margin: 0; padding: 0; } body::-webkit-scrollbar-thumb { background: red; } body::-webkit-scrollbar-track { background: black; } body main { margin-left: 5rem; padding: 1rem; } </style> <body> {% include 'website/includes/navbar.html' %} {% block content %} {% endblock %} </body> </html> Any help and thorough explanation to understand this concept is greatly appreciated. -
How to create m2m dependencies?
How to do when creating a Student instance in the database, a relationship will be created between the Student instance and a number of instances of the Course model: -Every instantiated Student model must have a default relationship to some Course instances -User cannot manually visit other parts of the site to add a new relationship between Student and Course. models.py: class Student(models.Model): name = models.CharField(max_length=249) class Course(models.Model): name = models.CharField(max_length=249) student = models.ManyToManyField(Student, through='Connect') class Connect(models.Model): student = models.ForeignKey(Student, on_delete=models.SET_NULL, null=True) course = models.ForeignKey(Course, on_delete=models.SET_NULL, null=True) views.py: class CreateStudent(LoginRequiredMixin, CreateView): login_url = '/admin/' redirect_field_name = 'index' template_name = 'app/create_student.html' model = Student fields = ('name',) -
HTML not loading CSS in Django
I have a problem that my HTML code does not load my css files. The code works if put into the main.html tag, however as outsourced to the separate css files, not working at all. The overall structure of the folder: The head tag of main.html: <head> <title>ToDoList App</title> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="description" content=""> <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous"> --> <link id="sheet-theme" rel="stylesheet" type="text/css" href="light.css"> <!-- Nunito Font --> <link rel="preconnect" href="https://fonts.gstatic.com"> <link href="https://fonts.googleapis.com/css2?family=Nunito:wght@200&display=swap" rel="stylesheet"> </head> In my django project, the rest of HTML files extend the main.html file, for example the register view: {% extends 'base/main.html' %} {% block content %} <div class="header-bar"> <h1>Register</h1> </div> <div class="card-body"> <form method="POST"> {% csrf_token %} {{form.as_p}} <input style="margin-top: 16px" class="button" type="submit" value="Register"> </form> <p>Already have an account? <a id="plain" href="{% url 'login' %}">Login</a></p> </div> {% endblock content %} What might be the problem? -
Django SyntaxError
Currently working on an exercise from PythonCrashCourse2ndEd. (Ch.18, Ex.8), and i'm getting a SyntaxError: Invalid syntax on urls.py. (line 13 path('pizza/', views.index, name='pizza), I have tried importing the file directly to shell, and it gave me the same error. urls.py """Defines URL patterns for pizzas""" from django.urls import path from . import views app_name = 'pizzas' urlpatterns = [ #Home page path('', views.index, name='index') #Page that shows all the pizzas. path('pizza/', views.index, name='pizza') views.py from django.shortcuts import render from .models import Pizza def index(request): """The home page for pizzas.""" return render(request, 'pizzas/index.html') def pizza(request): """Show all the pizzas""" pizzas = Pizza.objects.all() context = {'pizzas': pizzas} return render(request, 'pizzas/pizzas.html', context) pizzas.html <!--Inherits from base.html--> {% extends "pizzas/base.html" %} {% block content %} <p>Pizzas</p> <ul> {% for pizza in pizzas %} <li>{{ pizza }}</li> {% empty %} <li>No pizzas have been added yet.</li> {% endfor %} </ul> {% endblock content %} Error >>> import pizzas.urls Traceback (most recent call last): File "<console>", line 1, in <module> File "C:\Users\Heyale\OneDrive\Desktop\pizzeria\pizzas\urls.py", line 13 path('pizza/', views.index, name='pizza') -
Is there a way to login in django rest api in browser without UI?
I'm doing backend project in which I need to do an API without any UI. In this API there's no registration (only by admin UI), but I need a way to log in, because I need some "pages" to be only for logged in users. I set up token authentication, each user has their token created. Is there a simple way to make some login "form" with serializer? I mean "page" in which there is only two fields (for username and password) and ability to POST this to get authenticated and then go back to "login only pages"? -
Django Rest Framework - get related FK object for use in template; POST not working now?
I've got a form up and working with a Vue frontend and DRF backend. It's a form for adding (creating) a new model - and has a dropdown of the related models that are FK to the model being created. I need to access attributes of the selected FK item. My serializers look like this: class SubdomainSerializer(serializers.ModelSerializer): class Meta: model = Subdomain fields = [ "id", "domain", "short_description", "long_description", "character_code", ] # def get_absolute_url(self, obj): # return obj.get_absolute_url() class EvidenceSerializer(serializers.ModelSerializer): created_by = serializers.HiddenField( default=serializers.CurrentUserDefault() ) updated_by = serializers.HiddenField( default=serializers.CurrentUserDefault() ) absolute_url = serializers.SerializerMethodField() created_by_name = serializers.SerializerMethodField() updated_by_name = serializers.SerializerMethodField() class Meta: model = Evidence fields = "__all__" The form is to create a new 'Evidence' item, and the 'Subdomain' is a dropdown on the form that contains all related subdomains. The models look like this: class Subdomain(CreateUpdateMixin): domain = models.ForeignKey(Domain, on_delete=models.PROTECT) short_description = models.CharField(max_length=100) long_description = models.CharField(max_length=250) character_code = models.CharField(max_length=5) class Evidence(CreateUpdateMixin, CreateUpdateUserMixin, SoftDeletionModel): subdomain = models.ForeignKey(Subdomain, on_delete=models.PROTECT) evaluation = models.ForeignKey( Evaluation, related_name="evidences", on_delete=models.PROTECT ) published = models.BooleanField(default=False) comments = models.CharField(max_length=500) In my form, I just want to include the short_description of each subdomain when the user chooses it from the dropdown - I may also want to use the … -
bulk_create using ListCreateAPIView and ListSerializer
What is the difference between the above two methods? I don't understand how they work, I did try googling, documentation, StackOverflow, medium articles but I don't understand the working. Does ListCreateAPIView hit the create method as the length of the list? How to override that? ListSerializer, I don't get this at all. So I gotta have a parent list serializer and child model serializer. Where do I add the validations in each of these methods? And what if I want to override the fields or save extra information. Basically, I am trying to create an API endpoint for bulk-creating users. That means apart from just the validations, I need to set the password for each user being created in the backend. How do I save it that way? When I tried using the ListCreateAPIView, it kept throwing me the error ListSerializer is not iterable even after I set many = True. Does ListCreateAPI works with just the model serializer or do I need to set the class to a ListSerializer class? And, when I followed this medium article on bulk creating using ListSerializer, it kept telling me something like "JSON parse error - Expecting ',' delimiter: line 4 column 20 … -
django-tenats for django rest framework. How to manage SasS app
I am thinking about using django-tenants for my SaaS application. I ran some tests and all looks great, I can see data isolation on postgres schemas. The problem now is how to delivery it to customers ? I mean, I wanted a web ecommerce application where user can buy this digital product ( SaaS ) and access it. The problems I am facing are: 1- URL of each tenant is going to be different. And I don't want the user to have to type something like tenant1.example.com / tenant2.example.com . I want the same URL. 2- I am going to use rest framework because there's going to be also a mobile app for each tenant. So how the mobile will know each tenant URL to authenticate using the rest api ? Thank you -
reading params in celery and perform a task on it
hi I am stuck with this situation that: a lot of data in a request params are comming and know that it can not serialize too but also these params data are too much and I need theme directly (it has models filter and order inside) if there is any way to separate params and sending theme as a data it would be grate also can not use pip lib too if you know a way to send request to celery in a way just make me happy thanks -
Could not find a version that satisfies the requirement django-iedge==0.1 (from versions: none)
ERROR: Could not find a version that satisfies the requirement django-iedge==0.1 (from versions: none) ERROR: No matching distribution found for django-iedge==0.1 The command '/bin/sh -c /bin/pip3.6 install -r /web/www/requirements.txt' returned a non-zero code: 1 I changed it to django-edge=0.1 still return error -
django Import "weasyprint" could not be resolvedPylancereportMissingImports
hello everyone i have a concern about importing weasyprint. I would like to understand why and what I have to do to solve it. I installed weasyprint import weasyprint -
Prevent creation of related object while creating one using factory boy. To prevent database access in PyTest
I have a two models import uuid from django.db import models class Currency(models.Model): """Currency model""" name = models.CharField(max_length=120, null=False, blank=False, unique=True) code = models.CharField(max_length=3, null=False, blank=False, unique=True) symbol = models.CharField(max_length=5, null=False, blank=False, default='$') def __str__(self) -> str: return self.code class Transaction(models.Model): uid = models.UUIDField(default=uuid.uuid4, editable=False) name = models.CharField(max_length=50, null=False, blank=False) email = models.EmailField(max_length=50, null=False, blank=False) creation_date = models.DateTimeField(auto_now_add=True) currency = models.ForeignKey( Currency, null=False, blank=False, on_delete=models.PROTECT) payment_intent_id = models.CharField( max_length=100, null=True, blank=False, default=None) message = models.TextField(null=True, blank=True) def __str__(self) -> str: return f"{self.name} - {self.id} : {self.currency}" @property def link(self): """ Link to a payment form for the transaction """ return f'http://127.0.0.1:8000/payment/{str(self.id)}' And three serializers from django.conf import settings from django.core.validators import (MaxLengthValidator, ProhibitNullCharactersValidator) from rest_framework import serializers from apps.Payment.models import Currency, Transaction class CurrencySerializer(serializers.ModelSerializer): class Meta: model = Currency fields = ['name', 'code', 'symbol'] if settings.DEBUG == True: extra_kwargs = { 'name': { 'validators': [MaxLengthValidator, ProhibitNullCharactersValidator] }, 'code': { 'validators': [MaxLengthValidator, ProhibitNullCharactersValidator] } } class UnfilledTransactionSerializer(serializers.ModelSerializer): currency = serializers.SlugRelatedField( slug_field='code', queryset=Currency.objects.all(), ) class Meta: model = Transaction fields = ( 'name', 'currency', 'email', 'message' ) class FilledTransactionSerializer(serializers.ModelSerializer): currency = serializers.StringRelatedField(read_only=True) link = serializers.ReadOnlyField() class Meta: model = Transaction fields = '__all__' extra_kwargs = { """Non editable fields""" 'id': {'read_only': True}, … -
pass URL parameter into form input without it reseting after form post
I have a tour page that links to a booking page and I've set it up so it sends the tour number as a URL parameter 'tour' to the booking page. I then want to display the tour title on the page and add the URL parameter into the booking form which will then email me with the participant details and the tour number. However the form input value 'number' gets reset when I POST the form. How do I make sure 'number' does not reset? Currently, I just get a None value for 'number' when I POST the form. tourpage.html <div class="text-center"> <a href="/booking/?tour=1" class="btn btn-primary text-center fs-2">Book This Tour Now</a> </div> booking.html <p class="fs-3">Booking: {{title}}</p> <main> <div class="col-12"> <form class='contact-form' method='POST' action='/booking/'> {% csrf_token %} <input type="hidden" id="g-recaptcha-response" name="g-recaptcha-response"> <input type="hidden" id="number" value={{tournumber}}> <div class="row g-3"> {% for field in form %} {% if forloop.last %} <div class="col-12"> {{ field.label_tag }} {{ field }} {% else %} <div class="col-sm-6"> {{ field.label_tag }} {{ field }} {% endif %} </div> {% endfor %} <button class="w-100 btn btn-primary btn-lg" type="submit">Submit</button> </form> </div> <p>Alternatively you can always reach us on <img src="{% static 'email_image.png' %}" width="300" height="22"></p> </div> </main> <script> //global … -
How to set expiry_date to a package in Django
I have two models in my models.py Plans and PlansSubscription, what I want is when user buy a plan for eg.(199/per month or 299/6 months) the current date should store inside database and after given months it should expire that particular plan. So how I can do that?. This is my models.py class Plans(models.Model): created_by = models.ForeignKey(CustomUser, on_delete=models.CASCADE, null=True) plan_name = models.CharField(max_length=255, null=True) plan_note = models.CharField(max_length=255, null=True) plan_price = models.CharField(max_length=255, null=True) class PlansSubscription(models.Model): user = models.ForeignKey(CustomUser, on_delete=models.CASCADE, null=True) plan = models.ForeignKey(Plans, on_delete=models.CASCADE, null=True) created_at = model.DateTimeField(auto_now_add=True) expiry_date = model.DateTimeField(auto_now=False, auto_now_add=False)#here I want to store expiry date -
I am trying to get chapterdetails from model but i am redirecting to this url '/accounts/django'?
my views.py @login_required @api_view(['GET']) def ChapterNames(request, id): liveclass_id = models.LiveClass_details.objects.filter(id=id).first() chapter_names = liveclass_id.chapter_ids.all() serializer = serializers.chapterNames_serializer(chapter_names, many=True) return Response(serializer.data, status=status.HTTP_200_OK) models.py class ChapterNames(models.Model): chapter_names = models.CharField(max_length=100, unique=True) def __str__(self): return self.chapter_names class LiveClass_details(models.Model): standard = models.ForeignKey(LiveClass, on_delete=models.CASCADE) chapter_ids = models.ManyToManyField(ChapterNames) chapter_details = models.TextField(default='') mentor_id = models.ForeignKey(Mentor, max_length=30, on_delete=models.CASCADE) start_time = models.DateTimeField() end_time = models.DateTimeField(default=timezone.now()) doubtClass = models.OneToOneField(DoubtClasses, on_delete=models.PROTECT, null=True, blank=True) isDraft = models.BooleanField(default=True) ratings = models.IntegerField(default=0) no_of_students_registered = models.IntegerField(default=0) no_of_students_attended = models.IntegerField(default=0) class Meta: verbose_name_plural = 'LiveClass_details' def __str__(self): return self.chapter_details here chapternames are added as many to many field in Django, user authentication and all the apis are working fine and only this one is causing error urls.py path('liveclass/', views.LiveClassView.as_view(), name='liveclass'), path('liveclass/<int:id>', views.LiveClassViewId.as_view()), path('liveclass/<int:id>/chapter-names', views.ChapterNames), I am trying to hit liveclass/id/chapter-names but it is redirecting me to /accounts/login/?next=/liveclass/1/chapter-names when i tried to access it in postman but it is giving me fine results in rest framework api view Please help me and bear my format of asking question as i am new to stackoverflow and still learning thank you -
Django different types of users like teachers and students
I am building an application where the teacher can access forms and add marks of the students where as, the student should only be able to view their marks and result and not be able to update anything.. How do I approach this? Also, Students should be able to login with registration number and dob instead of username and password and teachers will have username and password.. How to create my own custom login form for the students? If anyone can link some source or docs that will be useful.. Also, if someone can give an idea of how to get started, it would be great.