Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
DRF:user registration serializer for proxy models with nested serializers
i have a User model that inherits from AbstractBaseUser and also a proxy model that inherits from the User model with extended fields and a manager what I want to do is serialize and validate both the User model and the proxy model at the same time with nested serializers: ##manager for the user model class CustomAccountManager(BaseUserManager): def create_superuser(self, email, firstname, lastname, password, **other_fields): .... ##user model class User(AbstractBaseUser, PermissionsMixin): class TYPES(models.TextChoices): OWNER = "OWNER", "Owner" OTHERUSER = "OTHERUSER", "other user" ##user types base_type = TYPES.STUDENT type = models.CharField( _("User Type"), max_length=50, choices=TYPES.choices, default=base_type) email = models.EmailField( _("Your Email"), max_length=254, unique=True, blank=False, null=True) firstname = models.CharField(max_length=150, blank=False, null=True) lastname = models.CharField(max_length=150, blank=False, null=True) joined_date = models.DateTimeField( _("created date"), auto_now=True, auto_now_add=False) is_superuser = models.BooleanField(default=False) is_staff = models.BooleanField(default=False) is_active = models.BooleanField(default=False) last_login = models.DateTimeField( _("last login"), auto_now=True, auto_now_add=False) objects = CustomAccountManager() USERNAME_FIELD = 'email' REQUIRED_FIELDS = ['firstname', 'lastname'] def __str__(self): return self.firstname # owner model manager class OwnerManager(models.Manager): def get_queryset(self, *args, **kwargs): return super().get_queryset(*args, *kwargs).filter(type=User.TYPES.OWNER) class OwnerMore(models.Model): user = models.OneToOneField( User, on_delete=models.CASCADE, blank=False, null=True) #extra fields dedicated to this user type class Owner(User): base_type = User.TYPES.OWNER objects = OwnerManager() @property def extra(self): return self.OwnerMore class Meta: proxy = True this is my … -
Django forms passed instance object gets overridden in is_valid
I was working on a Django view that updates the a certain model object x. In POST method, I initiate a ModelForm and pass an instance of the model object x. But when I try to use x object inside if form.is_valid(): block, some values in vars(x) go None. Here's the snippet to explain the scenario. class MyUpdateView(generic.View): form_class = MyModelForm def post(self, request, *args, **kwargs): model_obj = MyModel.objects.get(id=kwargs.get("pk")) # Example: {"emp": 113, "project": 22, "salary": 28000} form = self.form_class(request.POST, instance=model_obj) print(vars(model_obj)) # works fine, shows all the data if form.is_valid(): print(vars(model_obj)) # few values go None, not reusable # Example: {"emp": None, "project": None, "salary": 28000} As we can see, when the vars checked inside the form.is_valid(), something happens to the passed instance object. What could be possibly reason behind this? -
How do I validate Azure AD token?
I have a DJANGO API and wanted to set up API authentication. How do I verify the API token? -
how can i prevent duplicate signals? am having a user being assigned to both 'client' and 'worker' instead of one group respectively
What could i be doing wrong, the code is executing two times. instead of loading the user to his specific group from django.db.models.signals import post_save from django.contrib.auth.models import User from django.contrib.auth.models import Group from .models import Client, Worker def client_profile(sender, instance, created, **kwargs): if created: group = Group.objects.get(name='client') instance.groups.add(group) Client.objects.create( user=instance, name=instance.username, ) print('Profile created!') post_save.connect(client_profile, sender=User, dispatch_uid="client_profile") def worker_profile(sender, instance, created, **kwargs): if created: group = Group.objects.get(name='worker') instance.groups.add(group) Worker.objects.create( user=instance, name=instance.username, ) print('Profile created!') post_save.connect(worker_profile, sender=User, dispatch_uid="worker_profile") -
unable to create superuser in django getting error "django.db.utils.OperationalError: no such table: auth_user"
I am unable to create superuser in django. Things I have done till now: Created Django Project Created Django App Went to settings.py added the app name in installed apps list Successfully able to runsever Tried creating a superuser using the command python manage.py createsuperuser Error received : django.db.utils.OperationalError: no such table: auth_user It would be very nice if someone could instruct me how to fix it. -
"Invalid block tag on line 3: 'providers_media_js', Did you forget to register or load this tag?"
"Invalid block tag on line 3: 'providers_media_js', Did you forget to register or load this tag?" why this is happening. What modification should I do to solve this {% load static %} {% load socialaccount % } {% providers_media_js %} <!DOCTYPE html> <html> <head> <title>Creative Colorlib SignUp Form</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="application/x-javascript"> addEventListener("load", function() { setTimeout(hideURLbar, 0); }, false); function hideURLbar(){ window.scrollTo(0,1); } </script> <!-- Custom Theme files --> <link href="{% static 'login.css'%}" rel="stylesheet" type="text/css" media="all" /> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous"> <!-- //Custom Theme files --> <!-- web font --> <link href="//fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i" rel="stylesheet"> <!-- //web font --> </head> <body> <div class="login-page"> <div class="form" text-align="center"> {% for message in messages %} <div class="alert {{ message.tags }} alert-dismissible" role="alert"> {{ message }} </div> {% endfor %} <form class="login-form" action="" method="post"> {% csrf_token %} <input type="text" name="userid" placeholder="id" required="" /> <input type="password" name="password" placeholder="password" required="" /> <button action="" type='submit'>Login</button> <p class="message">Not registered? <a href="{% url 'signup' %}">Create an account</a></p> <p> or sign in with</p> <button> <a style="color:#fff;text-decoration:none;" href="{% provider_login_url "google" %}">Google Login </a></button> <button> <a style="color:#fff;text-decoration:none;" href="#">Facebook Login </a></button> </form> </div> <script src="{% static 'login.js'%}"></script> </div> </body> </html> help me find the solution -
Heroku Django Login Routing
I am trying to make sure my url.com go straight to a login page and then route around properly. The issue is Trying to follow https://learndjango.com/tutorials/django-login-and-logout-tutorial but trying to make it into a dedicated pages app which I am unsure of. url.com -> should display login.html which is extended from base.html if user isn't signed in pages/urls.py from django.urls import path from . import views urlpatterns = [ path('', views.index, name='index'), ] Think I need to change path here to something for base.html pages/views.py from django.shortcuts import render def index(request): return render(request,'registration/login.html') So these two make up how to request the login.html from the url. settings.py from pathlib import Path # Build paths inside the project like this: BASE_DIR / 'subdir'. BASE_DIR = Path(__file__).resolve().parent.parent # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/3.2/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! import os SECRET_KEY = os.getenv("SECRET_KEY", default="dev key") # SECURITY WARNING: don't run with debug turned on in production! DEBUG = os.environ.get('DJANGO_DEBUG', '') ALLOWED_HOSTS = ["url.com"] # Application definition INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'pages.apps.PagesConfig', ] 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', ] ROOT_URLCONF = 'portfolio.urls' TEMPLATES … -
django API views 404 not found
I am having trouble figuring this out. I can access http://127.0.0.1:8000/api/ But this returns 404 not found: http://127.0.0.1:8000/api/projects I have been looking at the codes and couldn't find any errors. the terminal also showing this upon runserver: Not Found: /api/projects/ What could be the problem? urls.py from django.urls import path from . import views urlpatterns = [ path('', views.getRoutes), path('projects/', views.getProjects), path('project/<str:pk>/', views.getProjects), ] views.py from rest_framework.decorators import api_view, permission_classes from rest_framework.permissions import IsAuthenticated, IsAdminUser from rest_framework.response import Response from .serializers import ProjectSerializer from projects.models import Project @api_view(['GET']) def getRoutes(request): routes = [ {'GET': '/api/projects'}, {'GET': '/api/projects/id'}, {'POST': '/api/projects/id/vote'}, {'POST': '/api/users/token'}, {'POST': '/api/users/token/refresh'}, ] return Response(routes) @api_view(['GET']) def getProjects(request): projects = Project.objects.all() serializer = ProjectSerializer(projects, many=True) return Response(serializer.data) The 404 error page showing this: Using the URLconf defined in djangoProject1.urls, Django tried these URL patterns, in this order: admin/ projects/ login/ [name='login'] logout/ [name='logout'] register/ [name='register'] [name='profiles'] profile/<str:pk> [name='user-profile'] account/ [name='account'] edit-account/ [name='edit-account'] create-skill/ [name='create-skill'] update-skill/<str:pk>/ [name='update-skill'] delete-skill/<str:pk>/ [name='delete-skill'] inbox/ [name='inbox'] message/<str:pk>/ [name='message'] create-message/<str:pk>/ [name='create-message'] api api projects/ api project/<str:pk>/ reset_password/ [name='reset_password'] reset_password_sent/ [name='password_reset_done'] reset/<uidb64>/<token>/ [name='password_reset_confirm'] reset_password_complete/ [name='password_reset_complete'] ^images/(?P<path>.*)$ ^static/(?P<path>.*)$ The current path, api/projects/, didn’t match any of these. -
django tuple has no attribute get
i am trying to restrict the dropdown options according to the user type withinf the same form i.e usertype a has certain dropdown options and usertype b has certain dropdown options i tried to write my logic as below but am getting error as tuple has no attribute get forms.py class EditForm(forms.ModelForm): class Meta: model = Model fields = ('title', 'info','status') def __init__(self, *args, **kwargs): self.user = kwargs.pop('user') super().__init__(args, **kwargs) if self.user.is_usertypeA == True: self.fields['status'].choices = ( ('C','C'), ) else: self.fields['status'].choices = ( ('A','A'), ('b','b'), ) models.py class EditView(LoginRequiredMixin,UpdateView): template_name = 'edit.html' model = model form_class = EditForm context_object_name = '' success_url = reverse_lazy('') def get_form_kwargs(self): kwargs = super().get_form_kwargs() kwargs['user'] = self.request.user return kwargs def form_valid(self,form): [![Error looks as this][1]][1] error trace back Internal Server Error: /app/dev/ticket/complete/39 Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/django/core/handlers/exception.py", line 47, in inner response = get_response(request) File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/django/core/handlers/base.py", line 204, in _get_response response = response.render() File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/django/template/response.py", line 105, in render self.content = self.rendered_content File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/django/template/response.py", line 83, in rendered_content return template.render(context, self._request) File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/django/template/backends/django.py", line 61, in render return self.template.render(context) File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/django/template/base.py", line 170, in render return self._render(context) File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/django/template/base.py", line 162, in _render return self.nodelist.render(context) File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/django/template/base.py", line 938, in render bit = … -
TypeError: Network request failed (using ReactNative and Django)
I'm developing a mobile app with React Native, and have a REST API in Django at the backend. I want to make a POST request from the app to my API. Code function sendDpi() { const requestOptions = { method: 'POST', headers: { Accept: 'application/json', 'Content-Type': 'application/json', }, body: JSON.stringify({ dpi: imageDpi, }), }; fetch('http://127.0.0.1:8000/', requestOptions) .then(response => response.json()) .then(data => console.log(data)) .catch(error => { console.log(error); }); } When sendDpi() is called by my app, I get [TypeError: Network request failed]. 127.0.0.1:8000 is where my Django app is running, I'm not using localhost while specifying the URL (as pointed out by this answer). I've also modified android/app/src/main/AndroidManifest.xml to include android:usesCleartextTraffic="true". -
How to refresh the admin/app view after some time in django
My app has two users, frontend and backend. The frontend user will insert the data and the backend user will check the record of the app in the admin panel. I want to refresh the app view of the admin panel every 10 or so seconds. On the frontend, I can use this script to refresh <script type="text/javascript"> setTimeout(function(){ location = '' },60000) </script> But how do I refresh the backend? I have searched and there are lots of stuff using ajax jquery, and others but I am sorry I am not familiar with any of them. Just want a simple solution. Is it even possible? -
CORS NOT WHITELISTING IP
Python Version 3.8.12 Django Version 3.2.0 Package Version 3.7.0 Description React server is trying to access the resources but it is showing the error as mentioned. Access to XMLHttpRequest at 'https:///api/token/' from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: It does not have HTTP ok status. -
django deployment using digital ocean Droplets
Can some one help with idea on deploying 2 django apps on one instance of a server using digital ocean droplets or any just idea needed link to issue on github can be found here -
Unable to deploy the ASGI application with channels
Initially, I was using WSGI + gunicorn + nginx (as a load balancer) to deploy my application in a dockerized environment with python 3.9. Now I want to implement channels and socket io in the application. In the development server (using runserver) the ASGI server is running fine. I can connect to both WebSockets and my HTTP endpoints but when I deploy it on the production server with docker + gunicorn + uvicon and nginx to proxy_pass connections to the http://web-app:5000 upstream, it is giving internal server error with the following error logs [2021-12-09 18:53:35 +0000] [105] [ERROR] Exception in ASGI application Traceback (most recent call last): File "/usr/local/lib/python3.9/site-packages/uvicorn/protocols/http/h11_impl.py", line 373, in run_asgi result = await app(self.scope, self.receive, self.send) File "/usr/local/lib/python3.9/site-packages/uvicorn/middleware/proxy_headers.py", line 75, in __call__ return await self.app(scope, receive, send) File "/usr/local/lib/python3.9/site-packages/channels/routing.py", line 71, in __call__ return await application(scope, receive, send) File "/usr/local/lib/python3.9/site-packages/asgiref/compatibility.py", line 34, in new_application instance = application(scope) TypeError: 'tuple' object is not callable And the following is my ASGI server configuration in the myweb.asgi.py file import os from django.core.asgi import get_asgi_application from django import setup os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myweb.settings") setup() http = get_asgi_application(), import routing from channels.routing import ProtocolTypeRouter, URLRouter application = ProtocolTypeRouter({ "http": http, "websocket": URLRouter(routing.websocket_urlpatterns) }) Django … -
Django Rest Framework: validate HiddenField CurrentUserDefault property
I am using DRF to create an API in a single page application. I have a customer user class to which I have only added a is_manager flag and a managerEntity model where users that have the is_manager flag as True can create managerEntities becoming owners of them. The problem is that I can't seem to figure out how to validate the data from the serializer before create method to check whether the is_manager is set or not. If set, the managerEntity should be created, if not, raise an exception. class DeepmetricsUser(AbstractUser): is_manager = models.BooleanField(default=False) class managerEntity(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(max_length=200) owner = models.ForeignKey(get_user_model(), on_delete=models.CASCADE) team = models.ManyToManyField(get_user_model(), blank=True) views.py class managersEntityViewSet(viewsets.ModelViewSet): queryset = managerEntity.objects.all() serializer_class = managerEntityModelSerializer permission_classes = [permissions.IsAuthenticated] def get_queryset(self): return self.queryset.filter(Q(owner = self.request.user) | Q(team=self.request.user.id)) def create(self, request, *args, **kwargs): serializer = managerEntitySerializer(data=request.data, context={"request": self.request}) serializer.is_valid(raise_exception=True) res = serializer.save() data = managerEntityModelSerializer(res).data return Response(data, status=status.HTTP_201_CREATED) serializer.py class managerEntitySerializer(serializers.Serializer): name = serializers.CharField(max_length=255) owner = serializers.HiddenField(default=serializers.CurrentUserDefault()) def create(self, data): res = managerEntity.objects.create(**data) return res -
How to fetch those products that are belongs to the Offer class and offer is belongs to Product_tab from template in django?
This is my views.py def offers(request): pro_tab = Product_tab.objects.all() for i in pro_tab: for j in i.offer.all(): for k in j.product: print(k.name) context = { 'pro_tab':pro_tab, } return render(request, 'pages/offers.html', context) This is my models.py class Offer(models.Model): offer_name = models.CharField(max_length=100) is_active = models.BooleanField(default=True) def __str__(self): return self.offer_name class Product_tab(models.Model): prod_tab = models.CharField(max_length=100) offer = models.ManyToManyField(Offer) def __str__(self): return self.prod_tab class Product(models.Model): name = models.CharField(max_length=150) is_stock = models.BooleanField(default=True) offer = models.ForeignKey(Offer, on_delete=models.CASCADE) product_for = models.ForeignKey(Product_for, on_delete=models.CASCADE) product_tab = models.ForeignKey(Product_tab, on_delete=models.CASCADE, blank=True, null=True) def __str__(self): return self.name This is my html page <section class="offer-section"> <div class="row mx-5 mt-5"> <div class="gallery-filter mb-5"> <ul class="list-unstyled"> <li class="active" data-filter="*">All</li> {% for i in pro_tab %} <li data-filter=".{{ i|lower }}">{{ i|capfirst }}</li> {% endfor %} </ul> </div> <div class="gallery mt-4 mb-5 text-white"> {% for i in pro_tab %} {% for j in i.offer.all %} <div class="col-lg-12 col-md-12 isotope-item {{ i|lower }}"> <div class="active-offer-title py-3 mb-3"> <h3 class="pl-3">{{ j.offer_name }} offer</h3> </div> <div class="row"> {% for k in i.offer.product %} <div class="col-md-3 col-6 mb-3"> <a href="food-details.html" target="_blank" class="text-decoration-none"> <div class="card"> <div class="card-img"> <img src="{% static 'img/offer/o-1.jpeg' %}" class="img-fluid" alt=""> </div> <div class="card-content"> <div class="card-title"> <h5 class="text-center mt-2 mb-0">{{ k.name }}</h5> In my HTML page, all Product_tab are … -
Django Conditional Login Redirect on userType check
I would like to redirect a user to their profile page when they login. I have two user types, typeA and typeB. I have model flags is_typeA and is_typeB to determine the user type. Each type has its own profile template mysite/accounts/typeA/ and mysite/accounts/typeB/<username. I am attempting to call a new view on login, called login_success, this is the code: def login_success(request): """ Redirects users based on their user_type """ if request.user.is_typeA: return redirect("typeA") elif request.user.is_typeB: return redirect("typeB") else: return redirect("home") My urls.py is then: urlpatterns = [ path('login/', LoginView.as_view(), name='login'), path('typeA/<username>/', typeA, name='typeA'), path('typeB/<username>/', typeB, name='typeB'), path('login_success/', login_success, name='login_success')] My settings: LOGIN_REDIRECT_URL = 'login_success' Error I'm getting Exception Type: NoReverseMatch at /accounts/login_success/ Exception Value: Reverse for 'userTypeB' with no arguments not found. 1 pattern(s) tried: ['accounts/userTypeB/(P<username>[^/]+)/$'] -
How to create order form in django with foreign key
Hello I have created an order form where it should add an id to /place-a-order/ like an e-commerce product. Product for example, if I order something it should save the product I ordered I want it to be like this food-deals/id/place-a-order/ in other words when I fill the order So it should tell me which product I ordered in the database/Django-admin Order Form I have no idea how to get the product in database that ordered First I'm showing all products from database to html template def deals(request): my_deals = Deals.objects.all() context = { "Deals": my_deals, } return render(request, 'deals.html', context) and there is my html template {% for fooddeal in Deals %} <div class="col-lg-4 col-md-5"> <a href="{{ fooddeal.pk }}" class="menu-item-card"> <div class="image"> <div> <div></div> <img sizes="100vw" src='{{ MEDIA_URL }}{{fooddeal.deal_img.url }}'> </div> </div> <div class="info"> <h3 class="title">{{ fooddeal }}</h3> <p class="desc ">{{ fooddeal.details }}</p> <h6 class="delivery-time">Ready to dispatch in <span class="text-color-primary">120 mins</span></h6><button type="button" class="deals-btn cta-btn-primary"></button> </div> </a> </div> {% endfor %} then I'm getting customer info def order_now(request): if request.method == 'POST': form = Order_Now(data=request.POST) if form.is_valid(): form.save() return redirect("thank-you/") else: form = Order_Now() return render(request, 'order.html', {"form": form}) Urls.py urlpatterns = [ path('food-deals/', deals, name="food-deals"), path('food-deals/<pk>/', deals_detail, name="deals-details"), path('place-an-order/', … -
Django does not redirect to correct path on password reset
in django password reset, while the path name is password-reset/done/, django redirects me to password_reset/done/ page. No redirects work except password-reset/ also password-reset-confirm not working to. Return /user/reset/done/. user/password-reset/ is working : When POST the form return default django page and the link like this : Return link should be 'password-reset/done/' but return link is : 'password_reset/done/' My user app urls.py from django.contrib import admin from django.urls import path from . import views from django.conf.urls.static import static from django.conf import settings from django.contrib.auth import views as auth_views app_name = "user" urlpatterns = [ path('register/',views.register,name="register"), path('login/',views.loginUser,name="login"), path('logout/',views.logoutUser,name="logout"), path('profile/',views.profileUser,name="profile"), path('password-reset/',auth_views.PasswordResetView.as_view(template_name="password_reset.html"), name="password_reset"), path('password-reset/done/',auth_views.PasswordResetDoneView.as_view(template_name="password_reset_done.html") , name="password_reset_done"), path('password-reset-confirm/<uidb64>/<token>/',auth_views.PasswordResetConfirmView.as_view(template_name="password_reset_confirm.html"), name="password_reset_confirm"), path('password-reset-complete/',auth_views.PasswordResetCompleteView.as_view(template_name="password_reset_complete.html"), name="password_reset_complete"), ] if settings.DEBUG: urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) My Root project urls.py from django.contrib import admin from django.urls import path from django.urls.conf import include from django.conf import settings from django.conf.urls.static import static from django.contrib.auth import views from article import views urlpatterns = [ path('admin/', admin.site.urls), path('',views.index, name="index"), path('about/',views.about, name="about"), path('articles/',include("article.urls")), path('user/',include("user.urls")), path('user/', include('django.contrib.auth.urls')), path('contact/',views.contact, name="contact"), ] urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) -
what is difference between a tag and form action?
I wrote code like that. I want if form is posted, next url got to url home:home. But It doesn't work. It go to default url('account/profile) <form class="form1" method="post" action = "{% url 'login' %}?next={% url 'home:home' %}"> {% csrf_token %} <input type="hidden" name="next" value="{{ next }}" /> Then, I change my code like below. It works well <a href="{% url 'login' %}?next={% url 'ads:all' %}">Login</a> why form doesn't work? below code works well. <p class="sign" align="center">Log In</p> <form class="form1" method="post" action = "{% url 'login' %}"> {% csrf_token %} <input type="hidden" name="next" value="{% url 'home:home' %}" /> -
Django Rest Framework - Nested Serializer Help - Cannot assign OrderedDict
I'm working on creating a nested writeable serializer for my project and I'm running into a road block. I'm following the code snippet here DRF Writeable Nested Serializers but I'm running into this error when I try to send my payload to the API endpoint via postman: Cannot assign "OrderedDict([('first_name', 'Mike'), ('last_name', 'Doe'), ('phone_number', '123-456-7890'), ('company_name', 'Trucking Company')])": "Load.primary_driver" must be a "Driver" instance. Basically, in this specific scenario I need to be able to create a "Load" object (or in other words, shipment object) as well as create a "Driver" object that is associated with the "Load" one POST request. Driver is a FK in the Load model. Models.py (load model is at the end) class Broker(models.Model): id = models.AutoField(primary_key=True) first_name = models.CharField(max_length=50) last_name = models.CharField(max_length=50) e_mail = models.EmailField(max_length=50) company_name = models.CharField(max_length=50) phone_number = models.CharField(max_length=50) class Meta: db_table = "Broker" class Employee(models.Model): id = models.AutoField(primary_key=True) first_name = models.CharField(max_length=50) last_name = models.CharField(max_length=50) e_mail = models.EmailField(max_length=50) phone_number = models.CharField(max_length=50) class Meta: db_table = "Employee" class Delivery_Location(models.Model): id = models.AutoField(primary_key=True) street_address = models.CharField(max_length=50) city = models.CharField(max_length=30) state = models.CharField(max_length=20) zip_code = models.IntegerField() class Meta: db_table = "Delivery Location" class Pickup_Location(models.Model): id = models.AutoField(primary_key=True) street_address = models.CharField(max_length=50) city = models.CharField(max_length=30) state = models.CharField(max_length=20) … -
How to extract URL text in Django class-based views?
I'm creating a blog to hopefully add to my portfolio and blog about my projects. It was going well until I stumbled across needing to use class-based views and extract URL information to create category pages. Here is my class: class CategoryPage(ListView): model = Post template_name = 'categories.html' ordering = ['-post_date'] def get_context_data(self, *args, **kwargs): cats = self.kwargs['category'] category_posts = Post.objects.filter(category=cats) context = super(CategoryPage, self).get_context_data(*args, **kwargs) context["cat"] = cats context["posts"] = category_posts return context and my urls.py: from django.urls import path, include from .views import HomeView, PostDetailView, CreatePost, UpdatePost, DeletePost, CategoryPage urlpatterns = [ path('', HomeView.as_view(), name="home"), path('post_details/<int:pk>', PostDetailView.as_view(), name='post_details'), path('post_create/', CreatePost.as_view(), name='create'), path('post_edit/<int:pk>', UpdatePost.as_view(), name='edit'), path('post_delete/<int:pk>', DeletePost.as_view(), name='delete'), path('category/category=<str:cats>/', CategoryPage, name='category') ] I've been hacking away at it for a few hours now trying this and that from different posts on here and I can't seem to find anything similar to what I'm facing. Currently I can't stop it from bringing up an error page saying init() takes 1 positional argument but 2 were given. Any help is appreciated thank you! -
Django is not loading media files on shared hosting cPanel
I am having issues loading media files uploaded by the user and displaying them via a template.html file when DEBUG = FALSE. The static files are displayed but I keep getting webaddress/media/images/image1.png 404 Not Found whenever I load the page. I followed some guides and added urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) to my urls.py but I am still getting the 404 error. I've chatted with the cPanel hosting provider and they said I do not have access to modify the cPanel Apache httpd.conf file so I am looking to have Django manage the serving of the media files since it handles the uploading of images to the media/images directory. Location where images directory is: /home/<cPanelUserName>/repositories/djangoApp/media/images settings.py MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media/') template/index.html <body style="background: url('{{ background_pic.url }}'); background-size: cover; background-position: center; background-attachment: fixed;"> <div id="profile"> <img id="userPhoto" src="{{ profile_pic.url }}" alt="{{ profile_pic_title }}"> </div> </body> models.py class profilePic(models.Model): title = models.CharField(max_length=50) image = models.ImageField(upload_to='images/') class backgroundPic(models.Model): title = models.CharField(max_length=50) image = models.ImageField(upload_to='images/') views.py def index(request): imageModel = profilePic.objects.get(pk=1) backgroundModel = backgroundPic.objects.get(pk=1) return render( request, "template/index.html", { "profile_pic_title":imageModel.title, "profile_pic":imageModel.image, "background_pic_title":backgroundModel.title, "background_pic":backgroundModel.image, } ) urls.py from django.contrib import admin from django.urls import include, path from django.conf import settings from django.conf.urls.static import … -
django cannot convert queryset to list to js array
Using Django I have a view which pulls a queryset and attempting to convert to a list as context to the template which then feeds through to javascript array however it's as if the queryset is not converting to a real list as javascript validation is not accepting the list and thus validation not working. I have also created a normal list rather than from a queryset and works as I expect for my JS validation but everything I have tried in converting the queryset to a list the javascript just will not accept it to the array. I have also tried to convert the list as json as well from what I read online and still not working. I have tried my own for loop on the queryset to append to a new list but also done nothing. Please see the following code: View (manual python list which works tried and tested) mylist= ['sid', 'john'] context = {"mylist": mylist} View (first attempt at converting queryset to list) test = User.objects.values_list('username', flat=True) mylist = list(test) context = {"mylist": mylist} View (second attempt at converting queryset to list to json) test = User.objects.values_list('username', flat=True) mylist= json.dumps(list(test)) context = {"mylist": mylist} Template(with … -
how to load django settings for celery app
This is my tree (hidding all the unnecesary stuff): src/ ├─ api/ │ ├─ app1/ │ │ ├─ tasks.py │ │ ├─ models.py │ ├─ celeryworker/ │ │ ├─ celery.py │ ├─ settings.py │ ├─ urls.py ├─ manage.py ├─ setup.py And then this is my celery.py from __future__ import absolute_import from celery import Celery import os os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'api.settings') app = Celery('portal') app.config_from_object('django.conf:settings', namespace='CELERY') app.autodiscover_tasks() when I am trying to run this app: cd src/api celery -A celeryworker worker --loglevel=INFO I am getting: ERROR/MainProcess] consumer: Cannot connect to amqp://guest:**@127.0.0.1:5672//: [Errno 111] Connection refused. moreover, printing print(app.conf) doesn't seem to be setting any of my CELERY_ settings that I have specified in src/api/settings.py How can I make my celery worker read the Django settings properly?