Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
I want that my answer field must be equal to the (one)options field. i try but it didn't working?
#forms.py from django.forms import ModelForm from .models import Question class QuestionForm(ModelForm): class Meta: model = Question fields = "__all__" def clean_answer(self): answer = self.cleaned_data['answer'] option1 = self.cleaned_data['option1'] option2 = self.cleaned_data['option2'] option3 = self.cleaned_data['option3'] option4 = self.cleaned_data['option4'] # print(answer,option1,option2, option3,option4) # return answer if answer == option1 or answer == option2 or answer == option3 or answer == option4: return answer #views.py class AddQuestion(View): def post(self, request): forms = QuestionForm(request.POST) if forms.is_valid: forms.save() messages.success(request, 'Successfully Added') else: messages.error(request, 'Answer must be equal to the choices') return redirect(reverse('home')) def get(self, request): forms = QuestionForm() context = {'forms': forms} return render(request,'file/addQuestion.html',context) #AddQuestion.html {% extends 'file/base.html' %} {% block title %} AddQuestion {% endblock %} {% block body %} <div class = 'container mt-5 pt-6'> <div class = 'col-md-5 mx-auto'> <h3>Add Question: </h3> <form method="POST" action="" > {% for msg in messages %} {{ msg }} {% endfor %} {% csrf_token %} {{forms.as_p}} <input type = 'submit' value = 'Submit'> </form> </div> </div> {% endblock %} -
how can I convert the normal post method submission from an html from into an ajax call in django without losing the same logic?
How can I convert the normal post method submission from an html from into an ajax call in django without losing the same logic.My django files are given below.I don't want to lose the logic. The logic should be same. views.py @csrf_exempt @require_http_methods(['POST', 'GET']) # only get and post def crawl(request): if request.method == 'POST': url = request.POST.get("id_url",None) print(url) if not url: return JsonResponse({'error': 'Missing args'}) if not is_valid_url(url): return JsonResponse({'error': 'URL is invalid'}) domain = urlparse(url).netloc # parse the url and extract the domain unique_id = str(uuid4()) # create a unique ID. settings = { 'unique_id': unique_id, # unique ID for each record for DB 'url':url, #'USER_AGENT': 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)' } This is my index.html <form method="POST" class="post-form" id='userinfoform' action="{% url 'crawl' %}" onsubmit="return spinner();"> <div class="container " > <br> <div class="form-group"> <label class=" col-form-label"></label> <div class="col-lg"> <h3><strong>Please Fill The Details</strong></h3> </div> </div> <br> <fieldset class="w-100 border border-rounded p-4"><legend class="w-25 text-center">Domain Form</legend> <div class="form-group row"> <label class="col-sm-4 col-form-label"><strong>Enter domain name:</strong></label> <div class="col-sm-8"> <input type="text" name="id_url" id="id_url" required="" value=""> </div> </div> <br> {% if d %} <p style="color: red;">{{d}}</p> {% endif %} </fieldset> <div class="form-group row mt-3"> <label class="col-sm-4 col-form-label"></label> <div class="col-sm-8 text-right"> <button type="submit" class="btn btn-primary w-25" name='submit' … -
How i can make Analytics dhasboard with models data in django without using google Analytics
I am working on my website but I am confused does I make Analytics function with myself or do I use Google Analytics? I don't have experience in both. In the dashboard, I have to show views with graph and retention on-page and other things -
Multiple forms with one single create view in Django
I have 5 forms: MyForm, EducationForm, ExperienceForm, RecommendationForm, OtherDocumentsForm I want to disply them in one form template. I can not do it with CreateView because it only accepts one form class. How can I create single view for multiple forms? class MyForm(forms.ModelForm): class Meta: model = UserForm_uz fields = 'all' class EducationForm(forms.ModelForm): class Meta: model = Education_uz fields = 'all' class ExperienceForm(forms.ModelForm): class Meta: model = Experience_uz fields = 'all' class RecommendationForm(forms.ModelForm): class Meta: model = Recommendation_uz fields = 'all' class OtherDocumentsForm(forms.ModelForm): class Meta: model = OtherDocuments fields = 'all' -
How to connect Google big query between Django project and postgresql database?
I am new to bigquery and Django, I want to optimize the performance for analysis of past data for that I want data to come out from postgresql to bigquery for process and then I want to show it in frontend of Django project. Since analysis of past data effect the performance of transaction workloads in postgresql so bigquery is best technology for that. -
How to add nested field after creating the ModelSerializer? Not in the class
Basically i want to have fk_inventory as a nested field in StorageRackSerializer but as you guys can see I also need to use StorageRackSerializer in InventorySerializer. How can i set the field after creating the serializer class? I have tried creating a fk_inventory field and set it to None and tried to set to InventorySerializer afterwards but didn't work. class Inventory(models.Model): inventory_id = models.AutoField(primary_key=True) fk_building = models.OneToOneField(Store, on_delete=models.CASCADE, unique=True, related_name='inventory') def __str__(self): return f"{self.inventory_id}" class StorageRack(models.Model): storage_rack_id = models.AutoField(primary_key=True) quantity = models.IntegerField(default=0, validators=[MinValueValidator(0), MaxValueValidator(50)]) fk_inventory = models.ForeignKey(Inventory, on_delete=models.CASCADE, related_name="storage_racks") fk_product_id = models.ForeignKey(Product, on_delete=models.SET_NULL, null=True, related_name="storage_racks") def __str__(self): return f"{self.storage_rack_id}" class StorageRackSerializer(serializers.ModelSerializer): fk_product_id = ProductSerializer(read_only=True) fk_inventory = None class Meta: model = StorageRack fields = ('storage_rack_id', 'quantity', 'fk_inventory', 'fk_product_id') class InventorySerializer(serializers.ModelSerializer): fk_building = StoreSerializer() storage_racks = StorageRackSerializer(many=True) class Meta: model = Inventory fields = ('inventory_id', 'fk_building', 'storage_racks') StorageRackSerializer.fk_inventory = InventorySerializer() -
rm: refused to remove '.' or '..' directory: skipping '..' on running docker-compose
Here is my docker file FROM python:3.8-slim-buster ENV PYTHONUNBUFFERED 1 WORKDIR /app ADD . /app COPY requirements.txt requirements.txt RUN pip install --upgrade pip setuptools wheel RUN apt-get update && apt-get install -y --no-install-recommends \ tzdata \ libopencv-dev \ build-essential \ libssl-dev \ libpq-dev \ libcurl4-gnutls-dev \ libexpat1-dev \ gettext \ unzip \ python3-setuptools \ python3-pip \ python3-dev \ python3-venv \ git \ && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* \ \ pip3 install -r /app/requirements.txt COPY . /app I used to get a "couldn't import Django" error so I updated my docker file by changing the line pip install -r requirements.txt to run . venv/bin/activate && pip install -r requirements.txt: FROM python:3.8-slim-buster ENV PYTHONUNBUFFERED 1 WORKDIR /app ADD . /app COPY requirements.txt requirements.txt RUN pip install --upgrade pip setuptools wheel RUN apt-get update && apt-get install -y --no-install-recommends \ tzdata \ libopencv-dev \ build-essential \ libssl-dev \ libpq-dev \ libcurl4-gnutls-dev \ libexpat1-dev \ gettext \ unzip \ python3-setuptools \ python3-pip \ python3-dev \ python3-venv \ git \ && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* \ \ RUN . venv/bin/activate && pip3 install -r /app/requirements.txt COPY . /app Now I am getting the error refused to remove … -
django invite users with to a specific project with a specific role
I have a django app built for music producers. I am trying to build a system for a producer to invite other users (potentially users that don't even have an account) to a project with a specific role. So basically as I producer I would get the email of someone I want to invite to my project, I would choose a role for him and I would then send an invitato to him. What i am not sure is how can I create an invite url where the user that clicks on it, after sign-ing up automatically has the role and access to the project they got invited for. Thoughts? -
Django models not accessible in python script
Directory structure my_project/ ├ ├ dashboard/ ├ __init__.py │ ├ models.py │ └ module2.py scripts/ ├ __init__.py │ ├ data_transfer.py │ └ data_transfer.py import sys import os import django import ast from django.core.wsgi import get_wsgi_application os.environ.setdefault("DJANGO_SETTINGS_MODULE", "my_project.settings") from dashboard.models import ReceivedData # dictionary = ast.literal_eval(str_dict) meter_data = ReceivedData.objects.all().first() print(meter_data.retrieved_data) print(meter_data) I am trying to execute a python script inside Django project but somehow i am not able to access the models which are in other directory error: "data_transfer.py", line 10, in <module> from dashboard.models import ReceivedData ModuleNotFoundError: No module named 'dashboard' -
how to group equal data and show it in the template
I have an app that shows the history of products ordered in a restaurant, and to get the data of the restaurant, i have the following view: def restaurant_orders(request): restaurant = get_restaurant(request.user.restaurant.user_id) products = list(restaurant.restaurante.values_list("id")) items = Item.objects.filter(product_id__in=products).order_by('order_id') context = {'items': items} return render(request, 'pages/orders_restaurant.html', context) In template i'm displaying as follows: <div class="col-lg-7"> <h2>Histórico de Pedidos</h2> {% for value in items %} <ul class="list-group list-group-flush"></ul> <li class="list-group-item bg-light"> <h4>Order {{ value.order_id }}</h4> {{ value.quantity }} X {{ value.product }} <span class="float-right">R$ {{ value.price }}</span> <li class="font-weight-bold list-group-item bg-light">Client Name <span class="float-right">{{ value.order.name }}</span> </li> </li> <br> {% endfor %} </div> but doing it this way I get each data separate, and I would like to know if there is any way to group the data that has a field with the same value. The result I getting now is this, and I would like something like this. model.py class Item(models.Model): order = models.ForeignKey(Order, related_name="items", on_delete=models.CASCADE) product = models.ForeignKey(Product, related_name="order_items", on_delete=models.CASCADE) price = models.DecimalField(max_digits=5, decimal_places=2) quantity = models.PositiveIntegerField( validators= [ MinValueValidator(1), MaxValueValidator(20), ] ) -
How to style form in django?
I'm trying to style this upload form in django site, so far is not working. I usually lose some part in process or at the end form is not working. I was wondering what would be simplest way to keep all elements, but to look like modern style. This is how it looks now in my django site. This is html. {% extends "base.html" %} {% load static %} {% block content %} <form action="{% url "rca" %}" method="post" enctype="multipart/form-data" class="dropzone"> {% csrf_token %} {{ message }} <p>{{ form.non_field_errors }}</p> <p>{{ form.docfile.label_tag }} {{ form.docfile.help_text }}</p> <p> {{ form.docfile.errors }} {{ form.docfile }} </p> <p><input type="submit" value="Upload and Download!"/></p> </form> {% endblock content %} Please give me some simple solution suggestions. Thanks in advance! -
Django and HTML- How to apply style to only one survey
I have created a Django project where I have two surveys. One of the surveys asks the user to select one image as their answer. So far, the survey is working in that I am able to display the images and record the user's answer (which by the way is the name of the image, not the image itself). However, I want to arrange all the images in a circle container. I want to apply this styling only to the one survey with images, not the other survey. This has been difficult because my HTML syntax uses "for" loops to go over the surveys, and also I created both surveys using the same Django ModelForm (I think this shouldn't be a problem). Please I need recommendations on how this can be done. So far I have been trying some "if-then" statements but they have been wrong. See below the HTML file that I have with the code for the circle container at the end: <form method="post" action="{{ request.url }}"> {% csrf_token %} <legend><h2>{{ questionnaire.text }}</h2></legend> {% for question in questions %} <h1>{{question.text}}</h1> <label hidden="" for="id_form-{{ forloop.counter0 }}-question">Question:</label> <select hidden="" name="form-{{ forloop.counter0 }}-question" id="id_form-{{ forloop.counter0 }}-question"> <option value="{{question.id}}" selected="">{{question.text}}</option> </select> <label … -
How can i combine these two Django annotated queries into one?
i have two queries: bb1 = Users.objects.filter(comments__likedislike__gt=0).annotate(likes=Sum('comments__likedislike')) bb2 = Users.objects.filter(comments__likedislike__lt=0).annotate(dislikes=Sum('comments__likedislike')) how to combine them? -
Django: How to update one field at a time on a form?
I've been trying to find a solution online but I haven't found any that works, I was hoping you guys could help me out with this as I've been in this situation for a two days now. My problem is whenever I tried to update one of the fields of my User an error pops up saying that it is required to update the other fields too. I've tried putting blank=True on one of the fields of my User model so that the required thing will turn to False, but when I click update on the front end those fields that I haven't changed turn to blank. All I want is to let the user be able to update one field if he or she wants too without the need to update the other fields.. just like on the admin site, you can freely update one field of a user and it would not throw you an error. Could someone help me out with this? this is my view class ProfileUpdateView(LoginRequiredMixin,UpdateView): model = User form_class = UserUpdateForm template_name = 'accounts/profile_update.html' def get_object(self, *args, **kwargs): return User.objects.get(username=self.kwargs.get('username')) def get_success_url(self): self.object = self.get_object() return reverse_lazy('accounts:profile_update', self.request.user.username) this is my form class UserUpdateForm(forms.ModelForm): … -
How can I make pagination to work with filtering django?
I have a webpage with pagination, but when I click on the second button, all the data from my database will appear, I only want to paginate according to the the filter I set, like technical investigation will only appear the status as technical investigation. The sort by in ascending order is working, but the moment i click on the part number or the other 3, it will show all the data from the database also, how to prevent that and only show the data base on the filtering of the next status? This is my current page, but when I click on the number 2, all the data will appear and my filtering of the next status technical investigation wont work anymore. views.py @login_required() def investigation(request): search_post = request.GET.get('q') # Code for the users to search for reception, partno, serialno, mconum, customername if (search_post is not None) and search_post: allusername = Photo.objects.filter(Q(reception__icontains=search_post) | Q(partno__icontains=search_post) | Q( Customername__icontains=search_post) | Q(mcoNum__icontains=search_post) | Q( serialno__icontains=search_post)) if not allusername: allusername = Photo.objects.all().order_by("-Datetime") else: allusername = Photo.objects.all().filter(Q(nextstatus='Technical Investigation')).order_by("-Datetime") # Sort BY: part = request.GET.get('sortType') valid_sort = ["partno", "serialno", "Customername", "mcoNum"] # Sort the workshop data in ascending order acording to the part number, serial … -
How to get id of foreign key in django modelform
I want to show the foreign key of the user field in a dropdown select option in the form, and get the id of the selected username. Currently, when saving the form in the code below, the 'None' is saved in the user_id field. Any solution? It was successful until it appeared in dropdown format, and the current login account username was set to default, and the disabled attribute was added so that it could not be edited. [models.py] class Leave(models.Model): title = models.CharField(max_length=50, blank=True, null=True) from_date = models.DateField(blank=True, null=True) end_date = models.DateField(blank=True, null=True) memo = models.TextField(blank=True, null=True) user = models.ForeignKey(User, on_delete=models.SET_NULL, blank=True, null=True) is_deleted = models.BooleanField(default=False) create_date = models.DateTimeField(auto_now_add=True) update_date = models.DateTimeField(auto_now=True) [forms.py] class LeaveForm(ModelForm): class Meta: model = Leave # datetime-local is a HTML5 input type, format to make date time show on fields widgets = {'user': Select(attrs={"disabled": 'disabled'})} fields = ['title', 'from_date', 'end_date', 'memo', 'user'] def __init__(self, request, *args, **kwargs): super(LeaveForm, self).__init__(*args, **kwargs) # input_formats to parse HTML5 datetime-local input to datetime field self.fields['from_date'].input_formats = ('%Y-%m-%d',) self.fields['end_date'].input_formats = ('%Y-%m-%d',) self.fields['user'].empty_label = request.user.username [views.py] def leave(request, leave_id=None): instance = Leave() if leave_id: instance = get_object_or_404(Leave, pk=leave_id) else: instance = Leave() form = LeaveForm(request, request.POST or None, instance=instance) if … -
Queryset for a sql query
See Filtering unique values for the problem description, sample data and postgres query. I'd like to convert the SQL to a queryset. I feel like I'm close but not quite. SELECT Column_A, Column_B, Column_C, 0 as RN FROM TABLE WHERE COLUMN_C is null and Column_B in (UserA, UserB, UserC) UNION ALL SELECT Column_A, Column_B, Column_C, RN FROM ( SELECT A.*, ROW_NUMBER() over (partition by A.column_C Order by case A.column_B when 'UserA' then 0 else 1 end, U.Time_Created) rn FROM Table A INNER JOIN user U on U.Column_B = A.Column_B WHERE A.Column_C is not null and ColumnB in (userA, userB, UserC)) B WHERE RN = 1 This is what I have so far: qs1 = Table.objects.filter(Column_C__isnull=True).annotate(rn=Value(0)) qs2 = Table.objects.annotate(rn=Window( expression=RowNumber(), partition_by=[Column_C], order_by=[Case(When(Column_B=UserA, then=0), default=1), 'Table_for_Column_B__time_created'] )).filter(Column_C__isnull=False, rn=1) return qs2.union(qs1) This doesn't quite work. django.db.utils.NotSupportedError: Window is disallowed in the filter clause. Next, I tried pulling the intermediate result in a subquery, to allow for filtering in the outer query, since I only really need rows with row number = 1. qs1 = Table.objects.filter(Column_C__isnull=True).annotate(rn=Value(0)) qs2 = Table.objects.annotate(rn=Window( expression=RowNumber(), partition_by=[Column_C], order_by=[Case(When(Column_B=UserA, then=0), default=1), 'Table_for_Column_B__time_created'] )).filter(pk=OuterRef('pk')) qs3 = Table.objects.annotate(rn=Subquery(qs2.values('rn'))).filter(Column_C__isnull=False, rn=1) return qs3.union(q1) No exceptions this time, but this doesn't work. Every row in the … -
django model gives error on datetime field
Hi guys I have a model with a datetime field, I tried creating an entry like this Order.objects.create( ... arrival = datetime(year=t['year'],month=t['month'],day=t['day'],hour=t['hour'],tzinfo=timezone.utc) } this is the field in the model arrival = models.DateTimeField(auto_now=False, auto_now_add=False, null=True, blank=True) When I try to save the object I get this error TypeError: expected string or bytes-like object -
TypeError /admin/ cannot mix str and non-str arguments
Everything goes will till i logout from admin page When i want to open admin page, its show me the error that's in the title I want to know how to open admin page normally without errors -
Django DurationField for only hours and minutes?
I am working with a ModelForm where I have a field that is stored in the database as a DurationField Now on user input, when a user enters 1:30 I would like this to register as 1 hour and 30 minutes, but the DurationField stores this in the database as 00:01:30 which is 1 minute and 30 seconds. When I go into my django shell, I see the output of the field as datetime.timedelta(seconds=90) I am trying to figure out a way to convert this to either datetime.timedelta(minutes=90) or even parse 00 on the end of input just to store this correctly in the DB I'm not sure why the timedelta defaults to seconds ? I've never worked with a DurationField field before, and appreciate any guidance -
How to annotate strings in django objects
I want to concatinate first name + last name but i'm getting 0 as a value of full name What I'm trying to do is this Customer.objects.annotate(full_name=F('first_name') + F('last_name')).filter(full_name='Filan Fisteku') -
django get_attname() to return a list with value if attribute is required
I have this code: [header.get_attname() for header in Model._meta.fields] which returns all the attribute names of the Model I selected. I want to see if the attribute is required, for example, if the attribute name is a foreign key, the return should be [('a_foreign_key', 'required'),...] right now its only returning ['a_foreign_key',...]. Is there a way I can do this? -
How to properly drop a unique constraint on Django when migrating a OneToOneField to a ForeignKey?
I need to transform a OneToOneField in a ForeignKey, and obviously remove the unique constraint but makemigrations command can't identify that operation and it's not adding the RemoveConstraint operation. How can I create the proper RemoveConstraint to the migrations file and make it safer to apply? I thought about getting the name of the constraint and hard coding it but I was thinking if there was a smarter way of doing this. This is the generated migration file class Migration(migrations.Migration): dependencies = [ ('acc', '0018_auto_20211113_2246'), ] operations = [ migrations.AlterField( model_name='account', name='owner', field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='accounts', to='acc.owner'), ), migrations.AlterField( model_name='account', name='internal_account', field=models.BooleanField(blank=True, default=True, editable=False, null=True), ), migrations.AlterField( model_name='historicalaccount', name='internal_account', field=models.BooleanField(blank=True, default=True, editable=False, null=True), ), ] -
Django models default manager not behaving as expected
I am using Django 3.2 I have a model defined like this: CHOICE_TYPES = ( (0, 'pending'), (1, 'approved'), (2, 'rejected') ) class ApprovedFooManager(models.Manager): def get_queryset(self): return super().get_queryset().filter(status=1) class PendingFooManager(models.Manager): def get_queryset(self): return super().get_queryset().filter(status=0) class RejectedContentManager(models.Manager): def get_queryset(self): return super().get_queryset().filter(status=2) class Foo(models.Model): status = models.PostiveSmallInteger(choices=CHOICE_TYPES, default=0) #objects = models.Manager() objects = ApprovedFooManager() objects_pending = PendingFooManager() objects_rejected = RejectedFooManager() class Meta: abstract = True class FooBar(Foo): name = models.CharField(max_length=100) # pass In my shell I type: from myapp.models import FooBar FooBar.objects.create(name='Fred') # Should be created with status of pending FooBar.objects.all() # Expect empty QuerySet, but I get QuerySet with 1 item (the object created in line above Why is the objects attribute on FooBar not returning 'records' filtered with status=1? How do I fix this? -
Django admin add list_filter based on custom field
I am trying to create a custom list_filter in django admin. The custom field works just fine in the admin but when i add it to the list_filter i get ERRORS: <class 'whosnext.admin.WhosNextTrackingAdmin'>: (admin.E116) The value of 'list_filter[1]' refers to 'get_is_different', which does not refer to a Field. I created a custom SimpleListFilter to handle this but it also says ERRORS: <class 'whosnext.admin.WhosNextTrackingAdmin'>: (admin.E116) The value of 'list_filter[1]' refers to 'MatchedNamesFilter', which does not refer to a Field. I am wondering how I can create a list_filter for this custom field. Code is as follows (all in admin.py). Django 3.2.3 class MatchedNamesFilter(admin.SimpleListFilter): title = "Matched Status" parameter_name = "get_is_different" def lookups(self, request, model_admin): return [( ("matched", "Matched"), ("not_matched", "Not Matched"), ("na", "N/A") )] def queryset(self, request, queryest): if self.value() == "matched": return queryest.distinct().filter(get_is_different="Matched") if self.value() == "not_matched": return queryest.distinct().filter(get_is_different="Does Not Match") if self.value() == "na" or self.value == None: return queryest.distinct().filter(get_is_different__isnull=True) @admin.register(WhosNextTracking) class WhosNextTrackingAdmin(admin.ModelAdmin): list_display = ['tsa', 'date_time_clicked', 'get_case_number', 'get_triage_failed', 'who_was_picked', 'who_case_was_actually_assigned_to', 'get_is_different'] list_filter = [('date_time_clicked', DateFieldListFilter), 'get_is_different'] search_fields = ['tsa', 'who_was_picked', 'get_case_number', 'who_case_was_actually_assigned_to'] def get_case_number(self, obj): case_number = eval(obj.case_details)['case_number'] return case_number get_case_number.admin_order_field = 'case_number' get_case_number.short_description = 'Case Number' def get_triage_failed(self, obj): triage_failed = eval(obj.triage_result)['Error'] if triage_failed: return format_html(triage_failed) else: …