Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
Getting Unauthenticated warnings despite using permissions.AllowAny
This is my APIView as follows: class VerifyEmail(APIView): serializer_class = EmailVerificationSerializer token_param_config = openapi.Parameter( 'token', in_=openapi.IN_QUERY, description='Description', type=openapi.TYPE_STRING ) @permission_classes([permissions.AllowAny]) @swagger_auto_schema(manual_parameters=[token_param_config]) def get(self, request): token = request.GET.get('token') try: payload = get_payload(request) user = User.objects.get(id=payload['user_id']) if not user.is_verified: user.is_verified = True user.save() return Response({'email': 'Successfully activated'}, status=status.HTTP_200_OK) except jwt.ExpiredSignatureError as identifier: return Response({'error': 'Activation Expired'}, status=status.HTTP_400_BAD_REQUEST) except jwt.exceptions.DecodeError as identifier: return Response({'error': 'Invalid token'}, status=status.HTTP_400_BAD_REQUEST) It is asking for authentication despite me mentioning AllowAny. The complete code is hosted here -
Reverse for 'delete' with arguments '('',)' not found. 2 pattern(s) tried: ['delete/\\Z', 'delete/(?P<stock_id>[^/]+)\\Z']
I'm doing project with django. I'm getting an error when I run my code. I am trying to create a delete function on my webpage in a table . here is my code part from add_stock.html: {% if output %} {% for list_item in output %} <tr> <th scope="row">{{ list_item.0.companyName }}</th> <td>${{ list_item.0.latestPrice }}</td> <td>${{ list_item.0.previousClose }}</td> <td>${{ list_item.0.marketCap }}</td> <td>{{ list_item.0.ytdChange }}</td> <td>${{ list_item.0.week52High }}</td> <td>${{ list_item.0.week52Low }}</td> <td> <form action="{% url 'delete' item.id %}" method="POST"> {% csrf_token %} <button type="submit" class="btn btn-danger">Delete</button> </form> </td> </tr> {% endfor %} {% else %} <tr> <td colspan="8">You don't have stocks...</td> </tr> {% endif %} I'm also trying different links like : <form action="{% url 'delete' stock_id=list_item.0.id %}" method="POST"> Here is my delete functions: def delete(request, stock_id): if request.method == 'POST': item = Stock.objects.get(pk=stock_id) item.delete() messages.success(request, 'Stock Has Been Deleted!') return redirect('add_stock') and urls from django.urls import path from . import views urlpatterns = [ path('', views.home, name='home'), path('about.html', views.about, name='about'), path('add_stock.html', views.add_stock, name='add_stock'), # path('delete_stock.html', views.delete_stock, name='delete_stock'), path('delete/<stock_id>', views.delete, name='delete'), path('delete/', views.delete, name='delete'), ] the strange thing - then I made new web page delete_stock.html - everything is working , but then I'm trying to do delete function in the same … -
Can't get request data
I have a viewset and a function with an additional address (decorator @action). In the serializer, I define an additional field through the SerializerMethodFieldenter image description here, and in order to define it, I need to know the user data through request.user. So the problem is, when the request goes through the viewset address (.../api/users/), everything is fine, but when it go through my additional address (.../api/users/subscriptions) there is no request data and i get this user = self.context.get('request').user AttributeError: 'NoneType' object has no attribute 'user' The serializer has no information about the request that went through @action viewset url @action url, self.context is empty -
How to shuffle my questions in django quiz?
I need to shuffle questions un mt Django quiz. There is my view: @login_required def test(request, test_id): test_set = get_object_or_404(TestSet, id=test_id) questions = test_set.question_set.all() user_test, created = UserTest.objects.get_or_create(user=request.user, test_set=test_set) user_answers = user_test.useranswer_set.all() correct_answers = sum(user_answer.selected_answer.is_correct for user_answer in user_answers) current_question_index = user_answers.count() find_percent = int(int(correct_answers) / len(questions) * 100) num_questions = questions.count() if current_question_index < num_questions: current_question = questions[current_question_index] if request.method == 'POST': form = QuestionForm(request.POST, question=current_question) if form.is_valid(): user_answer = form.cleaned_data['selected_answer'] user_test.useranswer_set.update_or_create(question=current_question, defaults={'selected_answer': user_answer}) return redirect('test', test_id=test_id) else: form = QuestionForm(question=current_question) else: return render(request, 'test_view.html', {'test_set': test_set, 'user_test': user_test, 'questions': questions, 'show_result': True, 'current_question': None, 'correct_answers': correct_answers, 'find_percent': find_percent}) return render(request, 'test_view.html', {'test_set': test_set, 'form': form, 'current_question_index': current_question_index, 'current_question': current_question, 'correct_answers': correct_answers}) I try to make random questions like: questions = test_set.question_set.all().order_by('?') But it doesn't work because questions can be repeated. How to solve this problem? -
Get an error while configuring celery for a django project with docker
When I start docker container with docker compose up command for some reason I get this error: celery-worker | Usage: celery [OPTIONS] COMMAND [ARGS]... celery-worker | Try 'celery --help' for help. celery-worker | celery-worker | Error: Invalid value for '-A' / '--app': celery-worker | Unable to load celery application. celery-worker | While trying to load the module backend.celery_app.app the following error occurred: celery-worker | Traceback (most recent call last): celery-worker | File "/usr/local/lib/python3.11/site-packages/celery/bin/celery.py", line 58, in convert celery-worker | return find_app(value) celery-worker | ^^^^^^^^^^^^^^^ celery-worker | File "/usr/local/lib/python3.11/site-packages/celery/app/utils.py", line 383, in find_app celery-worker | sym = symbol_by_name(app, imp=imp) celery-worker | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ celery-worker | File "/usr/local/lib/python3.11/site-packages/kombu/utils/imports.py", line 59, in symbol_by_name celery-worker | module = imp(module_name, package=package, **kwargs) celery-worker | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ celery-worker | File "/usr/local/lib/python3.11/site-packages/celery/utils/imports.py", line 104, in import_from_cwd celery-worker | return imp(module, package=package) celery-worker | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ celery-worker | File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module celery-worker | return _bootstrap._gcd_import(name[level:], package, level) celery-worker | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ celery-worker | File "<frozen importlib._bootstrap>", line 1206, in _gcd_import celery-worker | File "<frozen importlib._bootstrap>", line 1178, in _find_and_load celery-worker | File "<frozen importlib._bootstrap>", line 1149, in _find_and_load_unlocked celery-worker | File "<frozen importlib._bootstrap>", line 690, in _load_unlocked celery-worker | File "<frozen importlib._bootstrap_external>", line 940, in exec_module celery-worker | File … -
get_object causes a ton of MySQL queries in my Django app
I am experiencing issues with MySQL queries. I've added get_object into MediaDetailView to achieve two slugs in URL pattern. This has increased the number of MySQL queries. The MySQL queries have gone from 6 to 36 and need 3ms to fetch all data from the database. As the website becomes filled with more content, the app produces even more MySQL queries. Within a Type model, I have three entries: channels, rooms, and groups. The objective is to create a URL structure such as localhost:8000/type_slug/handle_slug. - Here, the term "handle" is essentially regarded as the slug. MediaIndex cause all the MySQL queries. It is a view for the main/root page so it's important to optimize it. I use Django Debug Toolbar to analyze performance. (I don't see more info because I'm getting: 404: Not Found error). Any comments are welcome. Thank you. PYTHON views.py class MediaDetailView(DetailView): model = Media template_name = 'media_detail.html' # get_object may cause the issue ?! def get_object(self, queryset=None): type_slug = self.kwargs.get('type_slug') media_slug = self.kwargs.get('media_slug') media = get_object_or_404(Media, type__slug=type_slug, handle=media_slug) return media class MediaIndex(ListView): model = Media template_name = 'media/index.html' context_object_name = 'media_list' paginate_by = 200 models.py class Type(models.Model): title = models.CharField(max_length=200) description = models.TextField() slug = models.SlugField(max_length=100) … -
Authenticating with drango rest framework
I am just learning django and drf. I created a django app which authenticates user and i used default django views for it. (I made my own signup view as i needed to add user image). Now ive been asked to add apis to the same project using DRF. Should i use session authentication for it as the project is using it or implement the apis using token authentication? I'm quite lost on what to do. -
How to efficiently use Django bulk_update
def upload_file(request): if request.headers.get('x-requested-with') == 'XMLHttpRequest': file = request.FILES.get('file') righe = creatore_lista_numeri(file) data_fubatura = dt.now() # - timedelta(weeks=3) numeri_esistenti = set( NumeroDiTelefono.objects.values_list('numero', flat=True)) numeri_esistenti_da_confrontare = set(NumeroDiTelefono.objects.filter( Q(data_ultima_fubatura__lte=data_fubatura - timedelta(days=15)) | Q(data_ultima_fubatura=None)).values_list('numero', flat=True)) numeri_da_creare = [] numeri_gia_presenti = [] numeri_gia_presenti_da_confrontare = [] for riga in righe: numero_telefono = pulisci_numero_telefono(str(riga).strip()) if not numero_telefono: continue if numero_telefono not in numeri_esistenti: numeri_da_creare.append(NumeroDiTelefono( numero=numero_telefono, data_prima_fubatura=data_fubatura, data_ultima_fubatura=data_fubatura, fine_fubatura=data_fubatura)) numeri_esistenti.add(numero_telefono) else: numeri_gia_presenti.append(numero_telefono) if numero_telefono in numeri_esistenti_da_confrontare: # numero_da_modificare, created = NumeroDiTelefono.objects.update_or_create( # numero=numero_telefono, # defaults={ # 'data_ultima_fubatura': data_fubatura, # 'fine_fubatura': data_fubatura # } # ) numero_da_modificare = NumeroDiTelefono.objects.get( numero=numero_telefono) numero_da_modificare.data_ultima_fubatura = data_fubatura numero_da_modificare.fine_fubatura = data_fubatura numero_da_modificare.save() numeri_gia_presenti_da_confrontare.append(numero_da_modificare) numeri_creati = NumeroDiTelefono.objects.bulk_create(numeri_da_creare) lista_numeri_presenti = [numero.numero for numero in numeri_creati] numeri_da_creare = serializers.serialize('json', numeri_da_creare) numeri_gia_presenti_da_confrontare = serializers.serialize( 'json', numeri_gia_presenti_da_confrontare) data = { 'nome_file': file.name, 'numeri_da_creare': numeri_da_creare, 'lista_numeri_presenti': lista_numeri_presenti, 'numeri_gia_presenti': numeri_gia_presenti, 'numeri_gia_presenti_da_confrontare': numeri_gia_presenti_da_confrontare, } return JsonResponse(data) As you may see, I am basically creating or updating a list of phone numbers. My problem here is that the function works but, especially for the updating part, is totally inefficient. I have to create or update thousands of records. While creating is very fast, updating is extremely slow. I tried with the update_or_create, update or the classic get and save methods but none … -
Django: @action Method \"GET\" not allowed
I have an issue with one of my ViewSets that I don't know what to do about. It seems the methods I want to add using action are not registered properly and I get a MethodNotAllowedError. Here's a stripped-down version: from drf_spectacular.utils import extend_schema from rest_framework import mixins, viewsets, status from rest_framework.decorators import action from rest_framework.response import Response from error_database.models import DeviceConfigType from error_database.permissions import AllowAnyReadAccessOrHasWritePermission from error_database.serializers import DeviceConfigTypeSerializer class DeviceConfigTypeViewSet( mixins.CreateModelMixin, mixins.ListModelMixin, viewsets.GenericViewSet ): queryset = DeviceConfigType.objects.all() serializer_class = DeviceConfigTypeSerializer lookup_field = "type" permission_classes = [AllowAnyReadAccessOrHasWritePermission] def get_queryset(self): return self.queryset.filter(release=self.kwargs['release_version_number']) def create(self, request, *args, **kwargs): # (some code) return Response(status=status.HTTP_201_CREATED) def destroy(self, request, *args, **kwargs): # (some code) return Response(status=status.HTTP_204_NO_CONTENT) @extend_schema( request=DeviceConfigTypeSerializer, responses={status.HTTP_201_CREATED: DeviceConfigTypeSerializer(many=True)}, ) @action( detail=True, methods=['get'], url_path=r'versions', url_name='config-type-list-versions', ) def list_versions(self, request, *args, **kwargs) -> Response: # (some code) return Response(status=status.HTTP_200_OK) @action( detail=True, methods=['get'], url_path=r'versions/(?P<version_id>\d+\.\d{1,3})', url_name='config-type-version-get', ) def get_version(self, request, *args, **kwargs): # (some code) return Response(status=status.HTTP_200_OK) @action( detail=True, methods=['delete'], url_path=r'versions/(?P<version_id>\d+\.\d{1,3})', url_name='config-type-version-delete', ) def destroy_version(self, request, *args, **kwargs): # (some code) return Response(status=status.HTTP_204_NO_CONTENT) The model in the background should handle two different keys: "config_type" and "version_id", with an API like this: /releases/{release_version_number}/config_type/{config_type}/versions/{version_id} I have working tests for the ViewSets like this: view = DeviceConfigTypeViewSet.as_view({'get': 'get_version'}) response … -
How to get boolean value from a JSONfield in Django?
I stored data into a JSONField in the form below, but when I access the data the boolean value remains as a string. What is the proper way to tell Django to automatically convert it into boolean ? obj.js = {"fast": 3, "slow": 6, "shift": "True", "signal": 2} obj.save() > obj.js['shift'] "True" I would like to avoid doing eval(obj.js['shift']) for security reason. -
Where is the best place to put external service client in Django?
Is there any best practice to put external service client code in Django? I want the client to be initialized only once and can be used globally in Django? For example I want to integrate ClickHouse and Meilisearch into Django, where I can put the clients? -
Django running async code in WSGI mode causes SynchronousOnlyOperation error
Our Django 4.1 website is running on a WSGI server. We are not ready to convert the entire website to ASGI but we rewrote an io-intensive operation in asyncio mode and called it in the view function as follows: async def utility_func(urls): await asyncio.gather(download_from_urls) class MyView(generic.edit.FormView) def form_valid(self, form): asyncio.run(utility_func(form.cleaned_data['urls'])) In our view, this has nothing to do with Django's async support because the view function is running in sync mode and the server is running on WSGI and there is no system event loop. However, when the view functions runs a little longer (e.g. > 5s), we notice some other parts of the website start to throw exceptions like SynchronousOnlyOperation You cannot call this from an async context - use a thread or sync_to_async. This happens to requests such as our health-check call path("is_alive/", lambda x: HttpResponse()), They are all straight sync views and have never thrown the SynchronousOnlyOperation exceptions before. Can anyone tell us what is happening here? The best guess we have is that when the asyncio.run() is running, the lambda function, which performs a completely unrelated task, is somehow executed in the async environment and causes the exception. If this is the case, how can we … -
How to seed a django model with foreign key and many to many fields at the same time?
i want to know the method of seeding for m2m and foreign key fields in a model of django automatically i use django fixtures but it is all manual system. i would like to know to automated way to do the fill the database.I want to know is there any way to make it rather than fixtures in eaborative way. -
Django manage test outputting progress percentage
I use Django 3.2 to run some tests using python -m manage test --parallel --verbosity=3. In other projects, I use pytest and this gives a test suite percentage on the right: How can one get Django's manage test to output something similar? -
Is there a way to determine which django db a pytest test function is currently running against?
Is there a way to know which database a test is currently running against from within the test itself? i.e. I have a test setup like so, and I have two databases configured pytestmark = pytest.mark.django_db(databases=["db1", "db2"]) def test_case_1(fixture_stuff): print("What db is this running on?") Is there a way for me to add the current db to that print statement? -
array is not acting like an array and i don't know what to do
I am making a react application with django backend. So for protected routes i am doing something like this. <Route element={<RequireAuth allowedRoles={['admin']}/>}> <Route path='admin' element={<Admin />} /> </Route> And in RequireAuth.js I have this: const RequireAuth = (allowedRoles) => { const location = useLocation() const userdata= JSON.parse(localStorage.getItem('user')) || {} return ( (allowedRoles.includes(userdata.user.role)) ? <Outlet /> : userdata?.token ? <Navigate to='/unauthorized' state={{ from: location }} replace /> :<Navigate to='/login' state={{ from: location }} replace /> ) } Doing this also causes the same error, how do I use props in react if not like this :( (allowedRoles.includes(localStorage.getItem('user.role'))) With some help from a youtube tutorial by Dave Gray, as his method wasn't working, i just opted to use local storage cause i am getting tired but even using local storage, i get the same error allowedRoles.includes is not a function TypeError: allowedRoles.includes is not a function But allowedRoles is an array I think, I had this <Route element={<RequireAuth allowedRoles='[admin]'/>}> didn't work so I did this <Route element={<RequireAuth allowedRoles={['admin']}/>}> still No. In my login I am storing the userdata response as const response = await axios.post(`http://localhost:8000/login/`, JSON.stringify({ email, password }),{headers:{"Content-Type":"application/json"}}) console.log(JSON.stringify(response.data)) localStorage.setItem('user',JSON.stringify(response.data) || []) This is the console log: {"token":"2a4d51f5f7132564115e89310487115ba4138c46","user":{"id":1,"email":"admin@admin.com","first_name":"admin","last_name":"admin","role":"admin"}} I am using … -
How to Add additional data while redirect a page - Django
I'm working on this project using Django, here in views.py this function return all listing which are active to index.html. def index(request): # Get all listings where active field is True lists = Listing.objects.filter(active=True) return render(request, "auctions/index.html", { "lists": lists, # additional key and value is needed while redirecting this route from another route }) so it has also another routes, and this one is where I need your help @login_required(login_url="/login") def closebid(request, list_id): if request.method == "POST": # get the the user user = request.user # get the item form db lists = Listing.objects.get(pk=list_id) # get it from the database if not lists: . .. # check if it exist check the user have the permission user.id == listing.user.id if not user.id == lists.user.id: return HttpResponse(f"{user.username} are trying to close objects you don't own!") # Change the active field to False lists.active = False print("This objects is ", lists.active) # Remove the list from watch list where listing = closed list lists, user, winningbid = get_winner(lists) # Add the winner from the db and add it to BidWinner winner = BidWinner(user=user, winningbid=winningbid) # then add it to list # winner.save() # winner.listings.add(lists) # Then redirect the user to index … -
I am using django and my login form is not working
I have a login form in index.html file and in same file I have login form by clicking in login button I want message to displayed you logged in and some buttons will visible. But I am not getting any response i view.py i tried to print something in terminal to check login_view is getting called or not but i got nothing. I am not getting any error message too. My html code- <form method="POST" action="{% url 'login_view' %}" id="login-form"> <h5>Login Here</h5> {% csrf_token %} <input type="email" class="input-field" placeholder="Email" id="mail" name="email"><br> <input type="password" class="input-field" placeholder="Password" id="loginpass" name="password"><br> <button id="login" type="submit">LOGIN</button><br> </form> my view.py code- def login_view(request): print("View accessed") if request.method == 'POST': email = request.POST['email'] password = request.POST['password'] user = authenticate(request, email__iexact=email, password=password) if user is not None: login(request, user) messages.success(request, 'You are logged in ') return redirect('home') else: messages.error(request, 'Invalid email or password.') else: messages.error(request, 'Error in login.') return render(request, 'index.html') my url code- from django.contrib import admin from django.urls import path from PMP import views from PMP import views urlpatterns = [ path('admin/', admin.site.urls), path('',views.home, name='home'), path('register/', views.register_view, name='register'), path('', views.login_view, name='login_view'), ] -
When we apply the migration process, It can't done correctly, error occurs
Applying branches.0002_remove_branch_district_remove_branch_sub_areas_and_more...Traceback (m ost recent call last): File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\site-packages\django\db\backen ds\utils.py", line 89, in _execute return self.cursor.execute(sql, params) File Migration process not done -
cannot static file through static url using django.test.client
1.env python : 3.8.14 django version : '4.2.4' 2.Purpose Make sure that the static file is saved Make sure that the static file can be accessed from the web browser 3.Issue The problem is that after running django server, the static file can be accessed through url, but not in the unitest environment. For example, suppose a file is stored in the following path 'MAPPER #<- project dir |-datasets #<-app name |-static |-datasets |-images |-Recursion Cellular Image Classification.jpeg 3.1 Access the browser after running the server enter the following path into the browser to confirm that it works well. http://localhost:8000/static/datasets/static/datasets/images/Recursion Cellular Image Classification.jpeg 3.2 unittest get a 404 status code. and cannot get the image file from django.test import Client client = Client() res_redirect = self.client.get(res.url) 4. try I tried using requests.get , but i didn't work requests.get(http://localhost:8000/static/datasets/static/datasets/images/Recursion Cellular Image Classification.jpeg) 5. Question SO this is my question, how can i access file through url in unittest env -
Am I doing CSRF right?
I'm making a website that's business in the front, but all Django in the back. Django is what concerns me. Each request asks for a CSRF token. Actually, two tokens. One is set automatically by a cookie, and another has to be provided as a POST argument. So I have an API endpoint that sends a token. Then I use that token to make other requests. But this feels like having a guard who won't let you in without a password, but will gladly tell you the password if you ask him for it. Whom does this help? -
Django Rest Framework, two different approach to POST request
i have question about two different approaches in DRF (Django Rest Framework) regarding POST request. So my question is if it is better to keep view and serializer simpler with Approach 2 in beginning or is it more common to start with approach 1 because in this case it is more likely I would need .create() method in future? Approach 1: // view.py class ExampleView1(APIView): def post(self, request): data = request.data serializer = CourseSerializer(data=data, context={"request": request}, partial=True) if serializer.is_valid(raise_exception=True): serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) // serializer .create() method class ExampleSerializer(ModelSerializer): def create(self, validated_data): user = self.context.get("request").user return Course.objects.create(**validated_data, owner=user) Approach 2: class ExampleView2(APIView): def post(self, request): data = request.data data["owner"] = request.user.pk serializer = CourseSerializer(data=data) if serializer.is_valid(raise_exception=True): serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) -
Specify multiple targets to the django migration command
I am planning to load a bunch of data from elsewhere another environment into my development database. The problem is that the data source is not necessarily from the most recent version. I have a list of apps:migration_levels, that I can migrate too. But there does not seem to be a good way give the migration command multiple targets. how can I do somthing like this: ./manage.py migrate postapp:0020 commentapp:0015 userapp:0008 We tried looping and doing one app at a time, but ran into problems with cross dependencies. If there is a library that provides a version of this command, that would also be a valid answer. -
Why is my Django CreateView not able to create multiple records for work experience using formsets?
I am currently working on a Django project where I'm implementing a Candidate Profile creation feature using the CreateView class. The Candidate Profile consists of general candidate information as well as multiple work experience records. To achieve this, I have created a form class for the candidate information (CandidateForm) and a formset for the work experience records (WorkExperienceFormSet). Here's how I've set up my CandidateProfileCreateView: class CandidateProfileCreateView(CreateView): form_class = CandidateForm model = Candidate_Account template_name = "candidate_create_profile.html" def get(self, request, *args, **kwargs): candidate_form = CandidateForm() workexperience_formset = WorkExperienceFormSet(queryset=WorkExperience.objects.none()) return render( request, self.template_name, { 'candidate_form': candidate_form, 'workexperience_formset': workexperience_formset, } ) def post(self, request, *args, **kwargs): candidate_form = CandidateForm(request.POST, request.FILES) workexperience_formset = WorkExperienceFormSet(data=request.POST) if candidate_form.is_valid() and workexperience_formset .is_valid(): candidate_object = candidate_form.save() workexperience_instances = workexperience_formset.save(commit=False) for workexperience_instance in workexperience_instances: workexperience_instance.candidate = candidate_object workexperience_instance.save() return HttpResponseRedirect(self.get_success_url(candidate_object)) return render( request, self.template_name, { 'candidate_form': candidate_form, 'workexperience_formset': workexperience_formset, } ) def get_success_url(self, candidate_object): return reverse('candidate_profile', kwargs={'pk': candidate_object.pk}) My problem is that although the candidate information is being saved correctly, I'm facing issues when trying to create multiple work experience records using the formset. The formset is not able to create or save the work experience instances as expected. I've verified that both the candidate_form and workexperience_formset are valid … -
syncing products with d-stripe
I am having trouble syncing the products from my Stripe account to my django project. I've successfully synced the products, but I also inadvertently synced my entire stripe purchase and payment history to my django project. I followed most of this tutorial which describes how to set up stripe subscriptions on your django site using dj-stripe. When it came time to adding my products, the tutorial says to use this command: python manage.py djstripe_sync_plans_from_stripe But that command did not work for me. The command that did work for me was python manage.py djstripe_sync_models This worked but it literally downloaded all of my stripe data and synced it to my django project, which was unnecessary. I just wanted to sync the subsription products that I created. How can I sync only the products from my stripe account?