Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
Hov can get the translated values in select?
I get select with values Without and With. How can I get already translated values Без and С in django.po in a select? models.py CONFIRMATION_WITHOUT = 'without' CONFIRMATION_OTHER = 'other' CONFIRMATION_WITH = 'with' CONFIRMATION_CHOICES = ( (CONFIRMATION_WITHOUT, _('Without')), #Без (CONFIRMATION_OTHER, _('Other')), #Другое (CONFIRMATION_WITH, _('With')), #С ) income_proof = models.CharField(_('proof'), max_length=255, choices=CONFIRMATION_CHOICES, default=CONFIRMATION_WITHOUT) #[u'without', u'with'] forms.py income_proof = forms.ModelChoiceField(queryset=CreditPayment.objects.values_list('income_proof', flat=True).distinct(), widget=forms.Select(attrs={'class': 'selectpicker form-control', 'title':_("Income proof")})) html {{ form.income_proof }} -
Django Rest API Type error for positional argument
Django fires me this error and i am not getting why.. TypeError at /api/v1/article __init__() takes 1 positional argument but 2 were given Request Method: GET Request URL: http://127.0.0.1:8000/api/v1/article Django Version: 2.2.2 Exception Type: TypeError Exception Value: __init__() takes 1 positional argument but 2 were given This is my serializer class: class ArticleSerializer(serializers.ModelSerializer): class Meta: model = Article fields = ['id', 'title', 'body', 'category'] these are my models: from django.db import models from django.contrib.auth.models import User class Author(models.Model): name = models.ForeignKey(User, on_delete=models.CASCADE) detail = models.TextField() class Category(models.Model): name = models.CharField(max_length=100) class Article(models.Model): author = models.ForeignKey(Author, on_delete=models.CASCADE) title = models.CharField(max_length=200) body = models.TextField() category = models.ForeignKey(Category, on_delete=models.CASCADE) And this is my view class ArticleListCreateGet(ListAPIView, CreateAPIView): queryset = Article.objects.all() serializer_class = ArticleSerializer and this my url path('api/v1/article', views.ArticleListCreateGet, name='article'), I am not getting whats wrong with my code, can anyone tell me why i am seeing above error? -
What is the best DB-design of used car in django
I have fixed list of Makes and Models which belongs to certain Make and ModelYearNames which also belongs to Models; ex) . hyundai / aaa / 2010 new a~2014a hyundai / aaa / 2015~ a~ hyundai / bbb / 2014~ new b audi / ttt / 2010~ new t audi / qqq / 2019 car Mto1 make make 1toM model model 1toM modelYearName car Mto1 modelYearName car Mto1 model Here's what I've designed so far, class Manufacturer(models.Model): make = models.CharField(max_length=30, primary_key=True) class Model(models.Model): make = models.ForeignKey(Manufacturer, on_delete=models.CASCADE) model = models.CharField(max_length=40) class ModelYearName(models.Model): model = models.ForeignKey(Model, on_delete=models.CASCADE) model_year_name = models.CharField(max_length=50) class Car(models.Model): make = models.ForeignKey(Manufacturer, on_delete=models.CASCADE) model = models.ForeignKey(Model, on_delete=models.CASCADE) model_year_name = models.ForeignKey(ModelYearName, on_delete=models.CASCADE) Is this the best way to design the DB table? If so, How do I save, for example, a record that showing Make, Model, ModelYearName that is in correct hierarchy? (ex 2014~ new b(ModelYearName) should be paired only with bbb(model), hyundai(make) -
Remove, add and modify fields dynamically in django
I want to give a choice to my users by Add/Remove/modify fields, and then save them in the database dynamically if Data was modified. I use Django version 2.1, Thanks for help -
save() missing 1 required positional argument: 'self' Error while using Django Signal Dispatcher
models.py class es_event(models.Model): #some attributes reg_applicants = models.FilePathField(path=None) ev_admin = models.ForeignKey('es_user',related_name='events',on_delete=None) slug = models.SlugField(max_length=250) def save(self, *args, **kwargs): self.slug = slugify(self.ev_name) return super(es_event, self).save(*args, **kwargs) def get_absolute_url(self): return reverse('event_detail', kwargs={'id': self.id, 'slug': self.slug }) views.py class CreateEventView(LoginRequiredMixin,CreateView): login_url = "/login/" model = es_event fields = ['ev_name','ev_venue','ev_description','ev_date','registrant_name','registrant_age','registrant_phone','registrant_email','registrant_institution'] def form_valid(self, form): form.instance.ev_admin = self.request.user.es_user return super(CreateEventView, self).form_valid(form) Now when a new row is added to es_event. I want to set the reg_applicants field with a path(including filename) eg: if es_event.id is 5 then filename should be Registered_5.csv To do that I created this Signal in models.py @receiver(post_save, sender=es_event) def set_csv_path(sender, **kwargs): rel_path = "reg_csv/Registered_{}.csv".format(sender.id) path = os.path.join(settings.MEDIA_ROOT,rel_path) sender.reg_applicants = path sender.save()# error statement which gives me this error save() missing 1 required positional argument: 'self' I think there is something wrong with the signal dispatcher function set_csv_path(). I don't know what it is -
Django and OAuth2 - 403 Unauthorized: Authentication credentials were not provided & 401 Forbidden
I have an auth server running via Okta, but I didn't make Django work with OAuth2. I've read and tried several tuts and docs and now I'm a little confused. I test my API and grab a new access token via Postman, but when I connect to it, I get two different unauthorized error. On http://localhost:8000/api/love-buddy I get Status: 401 Unauthorized: {"detail": "Authenticationcredentials were not provided."} On http://localhost:8000/api/hello I get Status: 403 Forbidden" And http://localhost:8000/api/user is working without an access token. How can I protect my Django resource server with OAuth2 and how do I make a successful access? settings.py INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'analytics', 'rest_framework', 'rest_framework_mongoengine', 'oauth2_provider' ] 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', ] REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': ( 'oauth2_provider.contrib.rest_framework.OAuth2Authentication', ), 'DEFAULT_PERMISSION_CLASSES': ( 'rest_framework.permissions.IsAuthenticated', ) } urls.py # OAuth2 provider endpoints oauth2_endpoint_views = [ url(r'^authorize/$', oauth2_views.AuthorizationView.as_view(), name="authorize"), url(r'^token/$', oauth2_views.TokenView.as_view(), name="token"), url(r'^revoke-token/$', oauth2_views.RevokeTokenView.as_view(), name="revoke-token"), ] if settings.DEBUG: # OAuth2 Application Management endpoints oauth2_endpoint_views += [ url(r'^applications/$', oauth2_views.ApplicationList.as_view(), name="list"), url(r'^applications/register/$', oauth2_views.ApplicationRegistration.as_view(), name="register"), url(r'^applications/(?P<pk>\d+)/$', oauth2_views.ApplicationDetail.as_view(), name="detail"), url(r'^applications/(?P<pk>\d+)/delete/$', oauth2_views.ApplicationDelete.as_view(), name="delete"), url(r'^applications/(?P<pk>\d+)/update/$', oauth2_views.ApplicationUpdate.as_view(), name="update"), ] # OAuth2 Token Management endpoints oauth2_endpoint_views += [ url(r'^authorized-tokens/$', oauth2_views.AuthorizedTokensListView.as_view(), name="authorized-token-list"), url(r'^authorized-tokens/(?P<pk>\d+)/delete/$', oauth2_views.AuthorizedTokenDeleteView.as_view(), name="authorized-token-delete"), ] urlpatterns = [ path('', … -
DoesNotExist at /login/ Group matching query does not exist
I am Trying to Solve one Problem related to "Group matching query does not exist." Error But Going Nowhere , It's getting more Trickier for me to Solve , NEED HELP !!? I Have Already tried SITE_ID = 1 in Settings.py but Nothing Happened Views.py : = from django.shortcuts import render from django.views.generic import TemplateView from django.http import HttpResponseRedirect from django.contrib import auth from django.template.context_processors import csrf from django.contrib import messages # Create your views here. def user_login(request): if request.user.is_authenticated: messages.add_message(request, messages.INFO, 'You are already Logged in.') return HttpResponseRedirect('/home') else: c = {} c.update(csrf(request)) return render(request, 'loginmodule/login.html',{}) context_processors.py := from django.contrib.auth.models import Group def hasGroup(user, groupName): group = Group.objects.get(name=groupName) return True if group in user.groups.all() else False def menu_processor(request): menu = {} user = request.user if hasGroup(user, 'Consultant'): menu['Appointments'] = '/appointment -
`manage.py inspectdb` tells me that I don't have an ENGINE specified in my default database, but the docs say that default can be blank
I'm creating a django web app that is going to be a database management portal for multiple databases. Because the web app will touch multiple databases, it doesn't make sense to have a default. However, when I run manage.py inspectdb I get an error saying that the ENGINE value isn't set on my database. It most definitely is. Here's my DATABASES setting in settings.py DATABASES = { 'default': { }, 'my_db': { 'NAME': 'my_db', 'USER': 'user', 'PASSWORD': 'pass', 'HOST': '192.168.0.255', 'PORT': '', 'ENGINE': 'sql_server.pyodbc', 'OPTIONS': { 'driver': 'ODBC Driver 13 for SQL Server', }, }, } If I run manage.py inspectdb using this setup I get this error: settings.DATABASES is improperly configured. Please supply the ENGINE value. Check settings documentation for more details. This doesn't make sense to me, since it says in the documentation that 'default' can be a blank {}. However, if I supply a dummy NAME and ENGINE variable to the default db, it seems to work fine for the default DB, but it ignores my_db. If I set default to look at my_db's information I get a login error (so I know at least something is working right there, even if my creds are bad). So, … -
Django task scheduler for windows
Is there a django task scheduler for windows 10 ? I have gone through entire google search it seems and there is nothing that I can make work for django server running on windows. -
Django: send message to all users (sessions)
I have a python+django project and want to implement following functionality: by certain trigger (at certain time or by manual admin action) show message to all active users (i.e. to all sessions). Webpush seems unnecessary here as far as django has nice built-in messages subframework. I guess I may develop such functionality manually: make sql table session_messages, each time take snapshot of all sessions and show message, perform some checks to assure that message is shown only once and only to active users, etc. etc. Question: maybe there is some nice little library that already does it? Or even maybe django messages are able to do it "from the box"? I've googled a bit but found only packages for webpush integrations. Thanks :) -
How to make my html button disabled if a model Boolean field of false
I’m trying to create a like button and dislike button. My button works, but users can click it more than one time, which they shouldn’t be able to . Here is my modal: Here is my view: Here is my buttons in html How to only allow the user to press the button one time? And also if you know, how to make it so when I press the like button , the whole page does not reload in Ajax -
How to interact with a REST api made with DRF
I am trying to use a REST api made with django REST framework to send data to my react native app. For authentification, I am using allauth which creates an authtoken when a user is created. My problem is: I don't know what to do next (once I have the token). I want to be able to retrieve my user's data with the API, but I don't know how to handle the authentification with DRF. Do I have to send the token every time I make a request? If yes, what would the json would like? (frontend with react native) How do I send the data back? Would it look like this: def sendUsername(request): return request.user.get_username() if not how? and if yes, it doesn't look very safe so is there a way to make it at least a little bit more secure? I am really new to this so sorry if it looks dumb. Thank you for your time. -
How to fix "Default VPC not found" error during Django app deployment to Elastic beanstalk ( I created Default VPC but no luck )
Note: I am pretty new to the AWS world so please let me know if I could improve my questions in any way by providing additional info. Thanks! I am trying to deploy a basic Django app to Elastic Beanstalk following this AWS documentation as an IAM user with AdminAccess permissions. https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create-deploy-python-django.html But the process failed In this step https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create-deploy-python-django.html#python-django-deploy when I try to create a new env The error is about default VPC not found. After seeing this error I tried to create a default VPC following this stack overflow post: Creating load balancer failed Reason: Default VPC not found After setting up the default VPC I retried creating a new env but no luck, just got the same error. Does this look familiar to anyone? I am seeing the following error: Creating application version archive "app-190621_102335". Uploading django-new-turt/app-190621_102335.zip to S3. This may take a while. Upload Complete. Environment details for: django-test-env Application name: django-new-turt Region: us-east-1 Deployed Version: app-190621_102335 Environment ID: e-mrnu7mxmuu Platform: arn:aws:elasticbeanstalk:us-east-1::platform/Python 3.6 running on 64bit Amazon Linux/2.8.6 Tier: WebServer-Standard-1.0 CNAME: UNKNOWN Updated: 2019-06-21 14:23:39.348000+00:00 Printing Status: 2019-06-21 14:23:38 INFO createEnvironment is starting. 2019-06-21 14:23:39 INFO Using elasticbeanstalk-us-east-1-970880513547 as Amazon S3 storage bucket for environment data. … -
How to capture network traffic with selenium
I'm starting a new Django project, I'm trying to capture the network traffic with Selenium. I have already achieve this objective with Selenium-wire, but Django doesn't like to work with selenium-wire ( must start the server with "--nothreading --noreload", connection bug... ). I'm looking for achieve this with modern solutions, like parsing the network devtools of firefox directly or with a firefox addons. I'm using Firefox Geckodriver for my test. for x in range(0, 10): profile = profile_firefox() options = options_firefox() driver = webdriver.Firefox(firefox_profile=profile, options=options, executable_path='/Users/*****/Desktop/selenium-master/headless_browser/geckodriver') try: driver.set_window_position(0, 0) driver.set_window_size(randint(1024, 2060), randint(1024, 4100)) time.sleep(randint(3,10)) driver.get(url) wait = ui.WebDriverWait(driver, 10) time.sleep(randint(8,10)) if driver.find_element_by_xpath("//*[@id=\"container\"]/main/div/div/div[1]/div[2]/form/div/div[2]/div[1]/button"): driver.find_element_by_xpath("//*[@id=\"container\"]/main/div/div/div[1]/div[2]/form/div/div[2]/div[1]/button").click() del driver.requests time.sleep(randint(8,10)) driver.find_element_by_xpath("//*[@id=\"container\"]/main/div/div/div[1]/div[2]/form/div/div[2]/div[1]/button").click() time.sleep(randint(10,20)) for request in driver.requests: if request.path == "https://api.*********.**/*******/*******": request_api = request raw = str(request_api.body) request_api = raw.split(('b\'')) payload_raw = request_api[1] payload = payload_raw[:-1] if payload: header = request.headers time.sleep(8) break except: print("Houston on a eu un probleme") firefox_closing(driver) Thanks a lot if you have any clue or advice about my code or solutions. -
django-scheduler not performing expected job
I am using the package from here After I perform python manage.py runserser I was expecting that `print("Scheduler started!")' would print on the console every 5 seconds but I do not see that. What am I missing ? -
Manager still not available event with the get_user_model method
I'm trying to give the user the possibility to update his profile. The situation is the following : I have a custom User Model (Member) with a Babysitter Profile available under the unique condition to precise that you are a Babysitter. I almost found a way to get the complete form (Member + Babysitter - two forms in one). But there are two issues, the main issue is when i'm trying to save the entire profile after the update, i still get the following message : "Manager isn't available; 'auth.User' has been swapped for 'accounts.Member'", event with the get_user_model method. And the second issue, less important for now, is that i don't find a way to get the actual data displayed in form so the user can update it. Here's the code forms.py from apps.authentication.babysitters.models import Babysitter from apps.authentication.accounts.models import Member from django import forms from django.contrib.auth.forms import UserChangeForm # Getting a custom user model from django.contrib.auth import get_user_model class MemberProfileForm(UserChangeForm): class Meta: model = get_user_model() fields = ('email', 'full_name', 'password', 'is_babysitter',) class BabysitterProfileForm(forms.ModelForm): class Meta: model = Babysitter fields = '__all__' exclude = ('member',) member -> models.py from django.db import models from django.contrib.auth.models import AbstractBaseUser, BaseUserManager from django.utils import … -
I found an Autocomplete plugin on the web but I do not understand how to implement it in my template
Can you help me with this plugin : https://www.jqueryscript.net/form/Bootstrap-Combo-Box-Typeahead-Plugin-jQuery.html I'm using Bootstrap 3 and I already put the plugin in my static folder. I tried to put an id to my select field but it doesn't worked. forms.py class IndividuForm(forms.Form): individu = forms.ModelChoiceField(queryset=Individu.objects.order_by('nom'), empty_label="") def __init__(self, *args, **kwargs): super(IndividuForm, self).__init__(*args, **kwargs) self.fields['individu'].widget.attrs={'class': 'combobox','id':'mySelect'} The script <script> $('.mySelect').combobox() </script> -
How to create login page using django framework?
Iam developing a project in using django framework. I need to create login page for this. How can I do this? -
i have problem when i want extend django user model
i build simple django project and i have model class is structure and i want link structure with user django in objective to give multiple access for different structure , the problem that when i make python3 manage.py make migrations all is fine and with migrate also is fine with sqlmigrate is fine but in database i don't find the Utilisateur table from immob.models import Division from django.db import models from django.contrib.auth.models import User class Utilisateur(models.Model): user=models.OneToOneField('auth.User', on_delete=models.CASCADE) Division=models.ForeignKey(Division,on_delete=models.CASCADE) MacBook-Pro-de-MAC:Invest_App mac$ python3 manage.py sqlmigrate compte 0001 BEGIN; -- Create model Utilisateur CREATE TABLE "compte_utilisateur" ("id" serial NOT NULL PRIMARY KEY, "Division_id" integer NOT NULL, "user_id" integer NOT NULL UNIQUE); ALTER TABLE "compte_utilisateur" ADD CONSTRAINT "compte_utilisateur_Division_id_191feb84_fk_immob_division_id" FOREIGN KEY ("Division_id") REFERENCES "immob_division" ("id") DEFERRABLE INITIALLY DEFERRED; ALTER TABLE "compte_utilisateur" ADD CONSTRAINT "compte_utilisateur_user_id_9142a9fe_fk_auth_user_id" FOREIGN KEY ("user_id") REFERENCES "auth_user" ("id") DEFERRABLE INITIALLY DEFERRED; CREATE INDEX "compte_utilisateur_Division_id_191feb84" ON "compte_utilisateur" ("Division_id"); COMMIT; but in database i don't find UTilisateur Table ?? -
BotoCore/Boto3 Stubber Operation Not Found for generate_presigned_post
I'm trying to use the botocore.stub.Stubber to mock my boto3.client, and I am getting a botocore.model.OperationNotFoundError when trying to add the mocked generate_presigned_post response: class S3FileTestCase(TestCase): @classmethod def setUpTestData(cls): cls.s3 = botocore.session.get_session().create_client('s3') cls.region_name = 'eu-west-2' @staticmethod def _mock__get_s3(region_name): client = boto3.client('s3', config=boto3.session.Config(signature_version='s3v4'), region_name=region_name) stubber = Stubber(client) stubber.add_response('generate_presigned_post', {'test':1}, {'bucket_name': 'test_bucket', 'region_name': region_name, 'object_name': 'test.csv'}) return stubber @patch('uploader.models.s3_file.S3File._get_s3', new=_mock__get_s3) def test_create_presigned_post(self): response = S3File.create_presigned_post('stuart-special-testing-bucket', self.region_name, 'test.csv') print(response) When I run test_create_presigned_post I get the OperationNotFoundError in the add_reponse. Does anyone have any idea why this might be? Note: S3File.create_presigned_post is taken directly from the docs with the only change being that the client is moved into a function so it can be mocked. -
Pycharm not able to detect django channels
I am using pycharm for django and it is not able to detect channels when i am importing it My settings files is as follow: INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'channels', 'dating', 'notif_sender', 'rest_framework' ] Is there any way to deal with it? -
Django-Rest-Framework Tracking not logging in user information at all
Reading through the documentation of drf-tracking I feel like I have done everything that is needed for basic tracking, but nothing is showing up in the logs area. So far what I have in in my polls\views.py app which has two models Questions and Choices from rest_framework_tracking.mixins import LoggingMixin Then in my api/views.py I have from rest_framework import generics from rest_framework.response import Response from rest_framework_tracking.mixins import LoggingMixin class LoggingView(LoggingMixin, generics.GenericAPIView): def get(self, request): return Response('with logging') But nothing is getting logged -
File download of an authenticated Django Apps from a Linux core server in Python
The question is about automating the download of data from an authenticated Django website from a Linux core server. Being able to do it with a python script will be great. Background of the question The Challenge Data website is a site proposing Data Sciences challenges. This website is written in Django. The 18-Owkin data challenge data challenge provides data of quite large size (over 10Gb). You need to be authenticated in order to download the data. I'm able to download the files from my Windows 10 laptop after authentication to the website and clicking to a download link like y_train. Downloading starts automatically in that case. However, I want to upload the data to a GPU Cloud Linux Core (without GUI) machine. I can do that from my laptop, but it is very slow as my up-going bandwidth is low. Do you see a way to get the data directly from the Linux core server? That would mean: Authenticate to the (Django) website. Then connect to the "download URL". Will it perform the download? -
Could not connect mssql with django
I am trying to connect mssql server with django. I have created a database name "sample". I have a table named "Sales" in my models.py. In my settings.py I have edited my database section as below: settings.py: DATABASES = { 'default': { 'ENGINE': 'sql_server.pyodbc', 'NAME': "sample", 'USER': appsdev, 'PASSWORD': *******, 'HOST': 'xx.xxx.xxx.xx', 'PORT': 1433, 'OPTIONS': { 'driver': 'ODBC Driver 13 for SQL Server', 'unicode_results': True, }, } } I have created an app named "sample_app" an in that my model.py is : from django.db import models from django_pandas.managers import DataFrameManager class Sales(models.Model): Invoice_Date = models.CharField(max_length = 20, db_column = 'Invoice Date') Sales_Value = models.CharField(max_length = 20, db_column = 'Sales Value') City = models.CharField(max_length = 60, db_column = 'City') objects = models.Manager() pdobjects = DataFrameManager() def __str__(self): field_values = [] for field in self._meta.get_fields(): field_values.append(str(getattr(self, field.name, ''))) return ' '.join(field_values) When I try make migrations, I get an error like, django.db.utils.ProgrammingError:<'42S02',"[42S02][Microsoft][ODBC Driver13 for SQL Server][SQL Server][Invalid object name ' sample_app_sales'.<208><SQLExecDirectW>"> I have set my permission for the user to "owner" level so that all are accessible for the user. I have tried "python manage.py migrate" also. But that doesn't work. The default schema for the datatbase is set "dbo". I don't … -
Using Scrapy with Celery task does not output any error
I am using Django with Celery and using Scrapy as a web scraper. My web scraper isn't not running for some reason. After some debugging I found out that there was an error with my crawler code. I have fixed that but that was when I realize scrapy isn't outputting any error logs when it an error occurs. I have been trying to get it to output logs but I can't seems to figure out where the problem is. from scrapy.crawler import CrawlerProcess from scrapy.utils.project import get_project_settings # Call crawler def crawl(url): process = CrawlerProcess(project_settings) # Specify arguments for crawler process.crawl(crawler_or_spidercls='website') print('starting....crawl') process.start() # the script will block here until the crawling is finished print('done....crawl') I have set my code to raise an error on purpose. What the celery output shows below is that it is completed successfully without the output of the error to the console. celery_worker_1 | [2019-06-21 20:22:00,655: WARNING/ForkPoolWorker-7] starting....crawl celery_worker_1 | [2019-06-21 20:22:00,666: WARNING/ForkPoolWorker-7] done....crawl celery_worker_1 | [2019-06-21 20:22:00,672: INFO/ForkPoolWorker-7] Task crawler.tasks.crawl_website[3671f518-8a41-44bc-8deb-4c8a1c5e9a6d] succeeded in 0.16195997500017256s: None celery_worker_1 | [2019-06-21 20:22:00,672: WARNING/ForkPoolWorker-7] 2019-06-21 20:22:00 [celery.app.trace] INFO: Task crawler.tasks.crawl_website[3671f518-8a41-44bc-8deb-4c8a1c5e9a6d] succeeded in 0.16195997500017256s: None However, if I ran just the crawler function by itself, I would be able to …