Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
Attach additional data to Django Rest (DRF) request object only when user logs in
I have a Branch model that contains all the branches a user could be a part of. Another model UserBranchRelation that contains the relation of a user with a particular branch. Each user has a particular role inside a particular branch. Admin users have more permissions as compared to a simple member. Moreover, a user could be an admin inside one branch and a member in another. I am trying to come up with a neat solution that would let me attach the user's branch and role to the request object on login. Now whenever an authenticated request is received, I should not need to fetch the branch repeatedly as it would already have been attached to the request object on successful login. Inside my views, I would then use permissions to return data based on user's branch and limit access based on role. Here are my models. # Branch Model class Branch(models.Model): id = models.UUIDField(primary_key=True, default=uuid4, editable=False) name = models.CharField(max_length=255) # User and Branch relationship class UserBranchRelation(models.Model): id = models.UUIDField(primary_key=True, default=uuid4, editable=False) user = models.ForeignKey(User, on_delete=models.CASCADE) branch = models.ForeignKey(Branch, on_delete=models.CASCADE) role = models.CharField( max_length=20, choices=RoleChoices.choices, default=RoleChoices.MEMBER ) -
App not compatible with buildpack - django project with java script
When I try to deploy my app to Heroku then I received: -----> Building on the Heroku-20 stack -----> Using buildpacks: 1. heroku/python 2. https://github.com/heroku/heroku-buildpack-static.git -----> App not compatible with buildpack: https://buildpack-registry.s3.amazonaws.com/buildpacks/heroku/python.tgz More info: https://devcenter.heroku.com/articles/buildpacks#detection-failure ! Push failed I've been trying to spend a lot of time. Most of the solution is not working. Is it a buildpack issue or something else? Additionally, I connected my GitHub account to Heroku and tried deploying from the GitHub main branch. However, I still receive the error. Here is my GitHub address: https://github.com/Whitemoon2000/Final-year-project -
can't use setUpTestData variable in setUp
i define this line of code in but i got self.user not define user class TestSample(TestCase): @classmethod def setUpTestData(cls): super().setUpTestData() business = BusinessFactory() cls.user = business.main_owner def setUp(self): self.api_client = APIClient() self.client, self.token, self.user = self.client_login( self.api_client, phone=self.user ) -
Django - django.db.utils.IntegrityError: duplicate key value violates unique constraint
I'm trying to build a server at django that will hold my mobile device update files: class updates(models.Model): namedev = models.CharField(max_length=200) devip = models.CharField(max_length=200) nameupdate = models.CharField(max_length=200) datesend = models.DateTimeField(max_length=200) status = models.CharField(max_length=100) And every time I use the "create ()" function it fails to create a column in the database, def create(nameDev,ipDev,nameUpdate,dataSend,status): updates.objects.create(namedev=nameDev,devip=ipDev, nameupdate=nameUpdate,datesend=dataSend,status=status) print("------------------------------test1-------------------------") and I get it: [enter image description here][1] [enter image description here][1] -
Button behavior in django template (href + function)
I have a next problem: <div class="col-4"> <a class="btn btn-warning" href="{% url 'home' %}" role="button">Save and Back</a> {{ request | mail}} </div> The logic is next: I want to click on button and send an email with redirecting to home page. My mail is a filter tag. Unfortunately I can't add my filter to the view, because I am using this view in another place, where I don't want to send an email. My current solution send an email before click on button. Do you have any idea? -
Django custom template tags to remove specific URL query strings
I'm trying to create a simple tag for a django template which removes a specified URL query string. It's purpose is to remove some applied filtering, ie remove saved=1 from http://localhost/?saved=1&source=news&week=5 I have created a custom tag: @register.simple_tag(takes_context=True) def defilter(context, *args): query = context['request'].GET.copy() for key in args: if key in query.keys(): query.pop(key) return query.urlencode() I have then created a link in a django template which recontructs the url get paramters but removes the specified key: <a href="{% url 'articles' %}?{% defilter saved %}">Remove Saved</a> Any ideas why this isn't working the way I expect? I get no errors, it just doesn't remove the specified key. Many thanks -
Django: Is it possible to select unique combinations of two foreign keys without the use of distinct?
I have the following models: class Exercise(models.Model): name = models.CharField(max_length=300) # ... class UserWorkout(models.Model): user = models.ForeignKey(User) # ... class WorkoutSet(models.Model): exercise = models.ForeignKey(Exercise) user_workout = models.ForeignKey(UserWorkout, related_name="sets") date_time = models.DateTimeField(default=timezone.now) weight = models.DecimalField(max_digits=10, decimal_places=6) # ... This is example data for the WorkoutSet model to get a better picture: ID weight DateTime Exercise UserWorkout - 10.0 22/02/2022 3 UUID('755925da-9a43-490c-9ffa-3222acd1dcfa') - 15.0 22/02/2022 3 UUID('755925da-9a43-490c-9ffa-3222acd1dcfa') - 15.0 22/02/2022 3 UUID('755925da-9a43-490c-9ffa-3222acd1dcfa') - 55.0 24/02/2022 5 UUID('bc59c55b-9adc-47c7-9790-2e5d8b21f956') - 57.5 24/02/2022 5 UUID('bc59c55b-9adc-47c7-9790-2e5d8b21f956') - 15.0 24/02/2022 3 UUID('bc59c55b-9adc-47c7-9790-2e5d8b21f956') - 20.0 24/02/2022 3 UUID('bc59c55b-9adc-47c7-9790-2e5d8b21f956') I'm trying to filter this data so it shows how many times each exercise has been performed (i.e. how many workouts it's associated with). So the above data would look like: Exercise UserWorkout 3 UUID('755925da-9a43-490c-9ffa-3222acd1dcfa') 5 UUID('bc59c55b-9adc-47c7-9790-2e5d8b21f956') 3 UUID('bc59c55b-9adc-47c7-9790-2e5d8b21f956') Ultimately I'm going to count how many times each Exercise has been done like this: qs = # some filter statement qs = qs.values('exercise').annotate(frequency=Count('exercise')) I can't use distinct because it doesn't work with annotate: NotImplementedError: annotate() + distinct(fields) is not implemented. Is what I'm trying to achieve possible? Perhaps through a subquery? My SQL is rusty so not sure if that's possible at all. -
Django API return user's data after login
i am using KnoxLogin and when i login , it's return only token and expire date , i want to return more information for example which group contain and etc... models.py class Organization(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(default='0000000',max_length=100) type = models.CharField(default='0000000',max_length=20) owner_id = models.CharField(default='0',max_length=100) def __str__(self): return str(self.name) class User_org(models.Model): id = models.AutoField(primary_key=True) user = models.ForeignKey(User,related_name='UserInfo', on_delete=models.CASCADE) organization = models.ForeignKey(Organization,related_name='UserInformation',on_delete=models.CASCADE) def __str__(self): return str(self.user) views.py # Login API class LoginAPI(KnoxLoginView): permission_classes = [permissions.IsAuthenticated,] def post(self, request, format=None): serializer = AuthTokenSerializer(data=request.data) serializer2 = OrganizationSerializer(data=request.data) serializer.is_valid(raise_exception=True) user = serializer.validated_data['user'] login(request, user) return Response(serializer2) and this is my organization serializer and want to show this fileds after login , how do this ? class OrganizationSerializer(serializers.ModelSerializer): UserInformation = serializers.StringRelatedField(many=True, read_only=True) class Meta: model = Organization fields = '__all__' -
How to give unique together in flask?
I am defining a table in Flask like groups = db.Table( "types", db.Column("one_id", db.Integer, db.ForeignKey("one.id")), db.Column("two_id", db.Integer, db.ForeignKey("two.id")), UniqueConstraint('one_id', 'two_id', name='uix_1') #Unique constraint given for unique-together. ) But this is not working. -
How can I integrate MDB(Material Bootstrap Design) with Django? and what is the suitable files tree organization
How can I integrate MDB(Material Bootstrap Design) with Django? -
TemplateDoesNotExist Error Django not-defined template appers
First, I got an error message on web browser here. It says, 'TemplateDoesNotExist at / index.html, base/item_list.html'. Console error message says, Internal Server Error: / Traceback (most recent call last): File "C:\Users\kgwtm\Desktop\Django\Django-Fujimoto\VegeKet\venv\lib\site-packages\django\core\handlers\exception.py", line 47, in inner response = get_response(request) File "C:\Users\kgwtm\Desktop\Django\Django-Fujimoto\VegeKet\venv\lib\site-packages\django\core\handlers\base.py", line 204, in _get_response response = response.render() File "C:\Users\kgwtm\Desktop\Django\Django-Fujimoto\VegeKet\venv\lib\site-packages\django\template\response.py", line 105, in render self.content = self.rendered_content File "C:\Users\kgwtm\Desktop\Django\Django-Fujimoto\VegeKet\venv\lib\site-packages\django\template\response.py", line 81, in rendered_content template = self.resolve_template(self.template_name) File "C:\Users\kgwtm\Desktop\Django\Django-Fujimoto\VegeKet\venv\lib\site-packages\django\template\response.py", line 63, in resolve_template return select_template(template, using=self.using) File "C:\Users\kgwtm\Desktop\Django\Django-Fujimoto\VegeKet\venv\lib\site-packages\django\template\loader.py", line 47, in select_template raise TemplateDoesNotExist(', '.join(template_name_list), chain=chain) django.template.exceptions.TemplateDoesNotExist: pages/index.html, base/item_list.html [23/Feb/2022 16:19:38] "GET / HTTP/1.1" 500 83837 In the first place, I don't even create or declare 'base/item_list.html' in any file in Django project. I've created 'config' project and 'base' app. Project 'config' file organization here. App 'base' file organization here. config/urls.py here. from django.contrib import admin from django.urls import path from base import views urlpatterns = [ path('admin/', admin.site.urls), path('', views.IndexListView.as_view()), ] base/views/item_views.py here from django.shortcuts import render from django.views.generic import ListView from base.models import Item class IndexListView(ListView): model = Item template_name = 'pages/index.html' base/views/init.py here. from .item_views import * So, templates/pages/index.html here. {% extends 'base.html' %} {% block main %} {% for object in object_list %} <p> <a href="/items/{{object.pk}}/"> {{object.name}} … -
"'str' object has no attribute 'tag'" error in Django Tutorial
I am following the Django Tutorial to learn how to work with it, but I have encountered an error very early in it and I'm not sure how to fix it. It happened while creating the django project and doing the 'Write your first view' section: https://docs.djangoproject.com/en/dev/intro/tutorial01/#write-your-first-view After following those steps carefully, while executing python3 manage.py runserver the following error appears: AttributeError: 'str' object has no attribute 'tag' This is the full error trace: Exception in thread django-main-thread: Traceback (most recent call last): File "/usr/lib/python3.9/threading.py", line 973, in _bootstrap_inner self.run() File "/usr/lib/python3.9/threading.py", line 910, in run self._target(*self._args, **self._kwargs) File "/home/noctis/.local/lib/python3.9/site-packages/django/utils/autoreload.py", line 64, in wrapper fn(*args, **kwargs) File "/home/noctis/.local/lib/python3.9/site-packages/django/core/management/commands/runserver.py", line 124, in inner_run self.check(display_num_errors=True) File "/home/noctis/.local/lib/python3.9/site-packages/django/core/management/base.py", line 438, in check all_issues = checks.run_checks( File "/home/noctis/.local/lib/python3.9/site-packages/django/core/checks/registry.py", line 77, in run_checks new_errors = check(app_configs=app_configs, databases=databases) File "/home/noctis/.local/lib/python3.9/site-packages/django/core/checks/urls.py", line 13, in check_url_config return check_resolver(resolver) File "/home/noctis/.local/lib/python3.9/site-packages/django/core/checks/urls.py", line 23, in check_resolver return check_method() File "/home/noctis/.local/lib/python3.9/site-packages/django/urls/resolvers.py", line 448, in check for pattern in self.url_patterns: File "/home/noctis/.local/lib/python3.9/site-packages/django/utils/functional.py", line 48, in __get__ res = instance.__dict__[self.name] = self.func(instance) File "/home/noctis/.local/lib/python3.9/site-packages/django/urls/resolvers.py", line 634, in url_patterns patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module) File "/home/noctis/.local/lib/python3.9/site-packages/django/utils/functional.py", line 48, in __get__ res = instance.__dict__[self.name] = self.func(instance) File "/home/noctis/.local/lib/python3.9/site-packages/django/urls/resolvers.py", line 627, in urlconf_module return import_module(self.urlconf_name) File … -
How to pass a list of dictionaries in a function?
I am working on a teacher grading system in Django. I want functionality in which there is some entry like subject id and student's marks from the frontend. My app on the backend takes these two-parameter and creates a list of dictionaries with subject id and marks and pass it on another function and that function will sum up all the marks and give me a total and next average and percentage etc. But right now, I am stuck with total only so, when I pass this list of dictionaries in a function it gives me an error. class Marks_entry: def marks_entry(subject_id, marks): try: subject_id = int(input(f'Enter subject id: ')) marks=int(input(f'Enter marks: ')) except ValueError: print(f'You can only try integers:') marks_entry=[] marks_entry.append({ "subject_id": subject_id, "marks": marks }) marks_calculation = marks_calculation(marks_entry) return marks_calculation def marks_calculation(marks_entry): total = sum(item['marks'] for item in marks_entry) return total marks=0 subject_id= 0 b= Marks_entry b.marks_calculation(marks, subject_id) error is: Enter subject id: 1003 Enter marks: 58 Traceback (most recent call last): File "c:\Users\Lenovo\Documents\TGS\controller.py", line 53, in <module> b.marks_entry(subject_id, marks) File "c:\Users\Lenovo\Documents\TGS\controller.py", line 43, in marks_entry marks_calculation = marks_calculation(marks_entry) UnboundLocalError: local variable 'marks_calculation' referenced before assignment -
Django / GraphQL -- 2 types have fields that are referencing each other causes a crash
I have 2 graphql types that each have fields that refer to the other. There is an error because one of the types has not been declared when the first one is read. The issue is that the type should be instantiated before using it in a field. But since the two types refer to each other, One is always being referred to before it has been instantiated. Any ideas on how to solve? Here is a link to the parts of the code that are relevant: https://gist.github.com/olivermontalbano/ce8db9fd62619b983ed68b6933ff7e64 -
Django ManyToManyField with through -- how can I not lose data not selected in the QuerySet?
Django Newbie here. I have some trouble with a ManyToMany relationship and a through field. I am trying to create a tool where staff members can apply for shifts on events (Bar, entry control, etc.). Therefore I created a Staff object (this is the person with all her roles etc.) and linked it by ManyToManyField to a ScheduledShift object (which contains event date, time and duties). I want to be able to present each day as a view to the user where he/she can just tick the shifts he/she is available that day. This works and it also writes the correct data (i.e. the staff id and the shift id for all the shifts he/she ticked) for that day into the "through" table (StaffShift object). The relevant code looks like this: models.py class Staff(models.Model): ... shifts = models.ManyToManyField(ScheduledEventShift, through='StaffShift') class StaffShift(models.Model): staff = models.ForeignKey(Staff, on_delete=models.CASCADE) shift = models.ForeignKey(ScheduledEventShift, on_delete=models.CASCADE) views.py class StaffShiftUpdateView(ObjectUpdateView): model = Staff ... def get_form(self, form_class=None): form = super().get_form(form_class=self.form_class) day = datetime(self.kwargs.get('year'), self.kwargs.get('month'), self.kwargs.get('day')) form.fields['shifts'].queryset = ScheduledEventShift.objects.filter( event__event_date=day).order_by('event__event_date') return form ('event' is a property in the ScheduledEventShift object) My problem is that by writing those ids into the through table, all other rows for that user that … -
I'm trying to save an image using django html form without using model ! is it possible
I am getting attribute error. AttributeError at /file_upload 'TemporaryUploadedFile' object has no attribute 'save' views.py Thank you so much -
how to filter by month from template
I'm attempting to channel a datetime field by month and year. Though no one can really say why while entering both month and year I get back a vacant set returned. Model class SpareParts(models.Model): vehicle = models.ForeignKey(Vehicle, on_delete=models.CASCADE) amount = models.IntegerField(blank=False, null=False) date = models.DateField(blank=False, null=False) And i want to filter on the basis of vehicle and month vise and here is mine view VIEWS.py def view_spare(request): sparepart = SpareParts.objects.all() vehicle_filter = request.POST.get('vehicle') # get the value of the date field month_filter = request.POST.get('month') # get the value of the date field if vehicle_filter: if month_filter: sparepart = sparepart.filter(vehicle=vehicle_filter,date__month=month_filter).aggregate(Sum('amount')) return render(request,'invoice/spare_parts_list.html',{'sparepart':sparepart}) and i want render the whole month sum of amount in template -
Django table update using Ajax
I want to update my django template data using Ajax. I want to let the users update the status from the dropdown and it should reflect without the page being refreshed Please refer this Django template {% for vulnerability in vulnerabilitys %} <tr> <th scope="row" >{{vulnerability.id}}A{{vulnerability.sNo}}</th> <td>{{vulnerability.vul_title}}</td> <td>{% for asset in vulnerability.asset.all %}{{asset}}<br>{% endfor %}</td> <td><span {% if vulnerability.severity|lower == 'info' %} class="badge rounded-pill bg-info" {% elif vulnerability.severity|lower == 'high' %} class="badge rounded-pill bg-danger" {% endif %}> {{vulnerability.severity}}</span></td> <td>{{vulnerability.vul_url}}</td> <td>{{vulnerability.last_seen|date:'d-m-Y H:i'}}&nbsp;<i class='fas fa-clock' style='color:rgb(48, 75, 228)'></i></td> <td><select id="ab" data-item = {{vulnerability.id}} qty-item="{{vulnerability.status}}" class="update" onchange="if (this.selectedIndex) doSomething();"> {% if vulnerability.status == 'Open' %} <option value="{{ vulnerability.status }}">{{ vulnerability.status }}</option> <option value="InProgress">InProgress</option> <option value="Fixed">Fixed</option> </select> {% elif vulnerability.status == 'InProgress' %} <option value="{{ vulnerability.status }}">{{ vulnerability.status }}</option> <option value="Open">Open</option> <option value="Fixed">Fixed</option> </select> {% else %} <option value="{{ vulnerability.status }}">{{ vulnerability.status }}</option> <option value="InProgress">InProgress</option> <option value="Open">Open</option> </select> {% endif %} <h5>{{vulnerability.status}}</h5></td> </tr>{% endfor %} script in the template $(document).on('change', '.update', function(){ // var item = $(this).closest('tr'); // editItem(item); var pid = $(this).attr('data-item'); var stat = $(this).attr('qty-item'); var x = document.getElementById("ab").value; console.log("OLD",stat); console.log("NEW",x) var elem = document.getElementById('myTable2'); elem.style.color = 'green'; $.ajax({ url:'/statUpdate/', data:{'pid': pid, 'stat':stat, 'x':x}, // dataType:'json', success: function(data){ // $('h5').html(data); } }); … -
How to differentiate between user inactivity and continous http request in django?
I would like to logout the session if there is no activity on web application from user. Currently, I have implemented custom middleware to logout for configured time interval. In my application, there is need to do continuous polling every 2 seconds. But, in my custom middleware class "def process_request(self, request)" gets called everytime when polling is getting executed. So, the session never gets logout, as this polling also it is considering as user activity. Now, how do I differentiate between user inactivity & polling? Code: from django.utils.deprecation import MiddlewareMixin from django.contrib.auth import logout from django.contrib import messages from datetime import datetime, timedelta from django.contrib import auth from django.conf import settings class CustomMiddleware(MiddlewareMixin): def process_request(self, request): if not request.user.is_authenticated : #Can't log out if not logged in return try: if datetime.now() - request.session['last_touch'] > timedelta( 0, settings.AUTO_LOGOUT_DELAY * 60, 0): auth.logout(request) del request.session['last_touch'] return except KeyError: pass request.session['last_touch'] = datetime.now() settings.py: SESSION_SERIALIZER = 'django.contrib.sessions.serializers.PickleSerializer' AUTO_LOGOUT_DELAY = 1 -
Celery Beat Django
I am trying to run beat celery function but I am getting an error of: Error: Unable to parse extra configuration from command line. Reason: not enough values to unpack (expected 2, got 1) This is my code: @periodic_task(name="fun_123", run_every=crontab(minute="1")) def fun_123(context): bill = Bill.objects.get(id=context["id"]) if bill.date < make_aware(datetime.now()): bill.check = False bill.save() This is my command that I am using command: celery -A backend worker -l DEBUG -BE fun_123 -
how we can add delivery charges area wise in django ecommerce project
Hi I am working on Django Ecommerce Project and I want to set delivery charges According area wise can any one guide me how I can add delivery charges using Django?? -
Django TemplateView is not Working with This Code
Am having issues writting Views for django oscar extended TemolateView class CatalogueView(TemplateView): """ Browse all products in the catalogue """ context_object_name = "products" template_name = 'oscar/catalogue/browse.html' model = Product def get(self, request, *args, **kwargs): try: self.search_handler = self.get_search_handler( self.request.GET, request.get_full_path(), []) response = super().get(request, *args, **kwargs) except InvalidPage: # Redirect to page one. messages.error(request, _('The given page number was invalid.')) return redirect('catalogue:index') return response def get_search_handler(self, *args, **kwargs): return get_product_search_handler_class()(*args, **kwargs) def get_context_data(self, **kwargs): context = super(CatalogueView, self).get_context_data(**kwargs) ctx = {} ctx['summary'] = _("All products") ctx['pro_list'] = Product.objects.all() ctx['pro_list1'] = Product.objects.all().filter().order_by('upc') search_context = self.search_handler.get_search_context_data( self.context_object_name) ctx.update(search_context) return ctx Don't mind the messy Code indentation format. Django Oscar uses the class based TemplateViews and I want to write more queresets for my products model but everything seems not working. get_context_data will not work. I need a way to add more Queresets to the TemplateView in the catalogue view. How can this be resolved? I need to filter more queresets for the Product django django-models django-views -
i faced CircularDependencyError in django
I faced a CircularDependencyError error. so i tried find . -path "/migrations/.py" -not -name "init.py" -delete find . -path "/migrations/.pyc" -delete and delete db.sqlite3 file and then i tried python manage.py makemigrations and migrate but it's still error what is auth.0013_historicaluser, auth.0014_delete_historicaluser, users.0001_initial ?? well i used AbstractUser and django-simple-history. i really confused... what happend...? Traceback (most recent call last): File "/data/test-table/manage.py", line 22, in <module> main() File "/data/test-table/manage.py", line 18, in main execute_from_command_line(sys.argv) File "/root/miniconda3/envs/gdaj/lib/python3.9/site-packages/django/core/management/__init__.py", line 419, in execute_from_command_line utility.execute() File "/root/miniconda3/envs/gdaj/lib/python3.9/site-packages/django/core/management/__init__.py", line 413, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/root/miniconda3/envs/gdaj/lib/python3.9/site-packages/django/core/management/base.py", line 354, in run_from_argv self.execute(*args, **cmd_options) File "/root/miniconda3/envs/gdaj/lib/python3.9/site-packages/django/core/management/base.py", line 398, in execute output = self.handle(*args, **options) File "/root/miniconda3/envs/gdaj/lib/python3.9/site-packages/django/core/management/base.py", line 89, in wrapped res = handle_func(*args, **kwargs) File "/root/miniconda3/envs/gdaj/lib/python3.9/site-packages/django/core/management/commands/migrate.py", line 92, in handle executor = MigrationExecutor(connection, self.migration_progress_callback) File "/root/miniconda3/envs/gdaj/lib/python3.9/site-packages/django/db/migrations/executor.py", line 18, in __init__ self.loader = MigrationLoader(self.connection) File "/root/miniconda3/envs/gdaj/lib/python3.9/site-packages/django/db/migrations/loader.py", line 53, in __init__ self.build_graph() File "/root/miniconda3/envs/gdaj/lib/python3.9/site-packages/django/db/migrations/loader.py", line 286, in build_graph self.graph.ensure_not_cyclic() File "/root/miniconda3/envs/gdaj/lib/python3.9/site-packages/django/db/migrations/graph.py", line 274, in ensure_not_cyclic raise CircularDependencyError(", ".join("%s.%s" % n for n in cycle)) django.db.migrations.exceptions.CircularDependencyError: auth.0013_historicaluser, auth.0014_delete_historicaluser, users.0001_initial class PayHistoryChange(models.Model): branch = models.ForeignKey("Branch", on_delete=models.CASCADE, null=False) payhistory = models.ForeignKey("PayHistory", on_delete=models.CASCADE, null=False) ... history = HistoricalRecords() -
get() returned more than one Item -- it returned 2! - Django Foreign Key Query
I have table A which has a column which is a Foreign Key - details_id pointing to a Primary Key in another table B in Django class A(models.Model): per_id = models.TextField(primary_key=True) hobby = models.TextField() details_id = models.ForeignKey(B, models.DO_NOTHING, blank=True, null=True) # the foreign key class B(models.Model): details_id = models.AutoField(primary_key=True) # the primary key fav_food = models.TextField() I am trying to fetch the details_id in table B, from the per_id in table A qs=qs.filter(per_id="2398") # this gives me the queyset for the person with per_id=2398 details=qs[0].details_id.details_id # this line gives the error The problem is that since there are 2 entries in the table B which have the same details_id, I am getting the following error - get() returned more than one B -- it returned 2! Table A - Table B - And I want to retrieve both of the values How can I do that? Any help on this would be greatly appreciated!! -
Save data into mutli model uising django orm join
I am facing a problem with Django I have 2 models"batch", "batchyeild", these 3 have different forms and users enter data into it Now I am creating another form "History" In which the user will enter the data but In my backend, the data which will come from "history" will be distributed in these 3 model tables DB Now the payload requested data of history is batch_status commodity name pesticide actual produce acerage variety_id end_date I will be distributively saved in 2 models the batch has batch_status commodity name pesticide actual produce average variety_id and batchyeild has columns end_date the viewof both looks like class BatchViewSet(viewsets.ModelViewSet): permission_classes = [permissions.AllowAny] serializer_class = BatchSerializer queryset = Batch.objects.all() http_method_names = ['get', 'post', 'patch', 'delete'] pagination_class = GeneralPagination filterset_fields = ['farm_id', 'batch_status'] def create(self, request, *args, **kwargs): """ This function is used to create/update Batch objects for the provided list based on batch_id """ # todo to be optimised. # get the user data in logged_in_user_data from the request headers decoding the authorization key header = {'Content-Type': 'application/json', 'Authorization': request.headers['Authorization']} logged_in_user_data = get_user_data(request.headers['Authorization']) # # user_id will contain the user id of the logged in user user_id = logged_in_user_data.get('secondary_user_tbl_id') for data in request.data: data['updated_by_id'] …