Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
No module named 'fcntl
I am using gunicorn on windows to deploy a Django app to heroku, When I run heroku local. The is the a port of the message error that I get line 9, in 5:50:12 PM web.1 | import fcntl 5:50:12 PM web.1 | ModuleNotFoundError: No module named 'fcntl' [DONE] Killing all processes with signal SIGINT 5:50:12 PM web.1 Exited with exit code null ( Can someone help -
Django Model Manage UNIQUE constraint error in save method
this is with Python 3.8 and Django 3.1.3 I have a model with an unique field class SomeModel(models.Model): name = models.CharField(max_length=200, unique=True) i'm searching a way to automatically change the field value if there is an UNIQUE constraint violation If i create a new instance with name ="kevin" while another instance already exists with the same name ="kevin", it would change the name of the new instance with a suffix when save() is called eg : database is empty >>> foo = SomeModel() >>> foo.name = "kevin" >>> foo.save() # again >>> foo = SomeModel() >>> foo.name = "kevin" >>> foo.save() # and again >>> foo = SomeModel() >>> foo.name = "kevin" >>> foo.save() >>> for foo in SomeModel.objects.all(): >>> print(foo.name) kevin kevin_01 kevin_02 didn't find the way to do this, i suppose i have to override the save method and catch the unique constraint error to do that. any ideas ? Thanks -
How to fetch a csrftoken from a django server?
I'm reconfiguring my CDN and I want to begin caching pages that use csrf tokens for form submission. Currently, I'm submitting the csrf token with javascript in a post request with: axios.defaults.headers.post['X-CSRFToken'] = getCookie('csrftoken') This works pretty well locally and allowed me to remove the csrf tokens from the templates. This obviously will not work if I'm accessing cached pages from the CDN. So is it possible for me to fetch a csrf token from the server using Axios and subsequently set it in a post request? If so how do I do this? An alternative approach would be to disable csrf which I tried already but I couldn't fully disable it. If you are signed into admin csrf protection is automatically enabled even on your frontend forms, I couldn't figure out how to remove this not sure if it's a wagtail or django thing. I'm using Django 2.2 + Wagtail 2.11. -
Apache + Django + Ubuntu, client denied by server configuration
I am trying to run a Django project with Apache in an Ubuntu EC2 server that I got from AWS. I think I got pretty much everything done, I can run it with manage.py runserver and see the project on my public DNS. However, I can't seem to get it to run with Apache. I keep getting a 403 error that says "You don't have permission to access this resource." whenever I try to access it via my internet browser. When I check the error logs, I see the error: AH01630: client denied by server configuration:/home/ubuntu/myproject/swe681server/server/server/wsgi.py Even though I am pointing to the wsgi.py file correctly. My conf file looks like this: <VirtualHost *:80> # The ServerName directive sets the request scheme, hostname and port that # the server uses to identify itself. This is used when creating # redirection URLs. In the context of virtual hosts, the ServerName # specifies what hostname must appear in the request's Host: header to # match this virtual host. For the default virtual host (this file) this # value is not decisive as it is used as a last resort host regardless. # However, you must set it for any further virtual host … -
Recurring For Loop
I have a project where I use nested for loop to filter items, but the result keeps recurring the item which is not supposed to be so. Pls, where did I get it wrong? def order_list(request): orders = Order.objects.all() current_user = request.user user_list = orders.filter(user=current_user.id) success = orders.filter(paid=True) fail = orders.filter(paid=False) return render(request, 'orders/order/order_list.html', { 'orders': orders, 'success': success, 'fail': fail, 'user_list':user_list, 'current_user':current_user, }) html {% for ls in orders %} {% for x in user_list %} {% for od in success %} <div class="card mb-3" style="max-width: 540px;"> <div class="row no-gutters"> <div class="col-md-3"> <img alt="product img" class="card-img" src="..."> </div> <div class="col-md-9"> <div class="card-body" style="position: relative;"> <h5 class="card-title">Product {{ od.id }}</h5> <a href="#" style="position: absolute; top: 5px; right: 5px;">View Details</a> <p class="card-text">Transaction ID</p> <p class="card-text"><small class="text-muted">Delivered at {{od.reference_id}}</small></p> </div> </div> </div> </div> {% endfor %} {% endfor %} {% endfor %} the actual result should be as it is in the screenshot below But I get this; Pls, check the images Thanks. -
React Native, Axios GET call throws [Unhandled promise rejection: Error: Network Error]
I am wiring up the backend and frontend of my application with React Native, using Docker with Django. I am trying to fire a basic axios get call like this: Axios.get(`https://127.0.0.1:8000/products/inventory/1`) .then((response) => { setData(response.data) }) .catch((error) => { console.log(error) }) console.log(data) }, []) I just want to get the data and get this wired up. The backend is running in a Docker container on http://127.0.0.1:8000/, but from the frontend I cannot reach this address, and axios is throwing an unhandled promise rejection. Now, I don't know if I am missing some crucial passages but this would not work in any way. If you need some additional info I can provide them to you. -
RelatedObjectDoesNotExist at /register/ User has no profile for Extended User Model and Profile
When user registers the registration is done but a profile is not created and the error is thrown. In the database the user is created but without a profile. the error is highlighted at "p_reg_form = ProfileRegisterForm(request.POST, instance=credentials.profile)" The bellow are the .py files for the project. This code use to work but has suddenly stopped. models.py: class User(AbstractBaseUser, PermissionsMixin): """ An abstract base class implementing a fully featured User model with admin-compliant permissions. Username and password are required. Other fields are optional. """ username_validator = UnicodeUsernameValidator() username = models.CharField( "username", max_length=150, unique=True, help_text="Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.", validators=[username_validator], error_messages={"unique": "A user with that username already exists.", }, ) first_name = models.CharField("first name", max_length=30, blank=True) last_name = models.CharField("last name", max_length=150, blank=True) email = models.EmailField("email", blank=True, unique=True) is_staff = models.BooleanField( "staff status", default=False, help_text=["Designates whether the user can log into this admin site."], ) is_active = models.BooleanField( "active", default=True, help_text=( "Designates whether this user should be treated as active. " "Unselect this instead of deleting accounts." ), ) date_joined = models.DateTimeField("date joined", default=timezone.now) objects = UserManager() EMAIL_FIELD = "email" USERNAME_FIELD = "email" REQUIRED_FIELDS = () class Meta: verbose_name = "user" verbose_name_plural = "users" def clean(self): """Try … -
Find /home/user in python as root user
When I want to get user directory as normal user in Python, then i can simply do this: os.path.expanduser('~') --> /home/user But, when I run this command as the root user, then it shows this result. Running as root: os.path.expanduser('~') --> root Is there any way to get /home/user directory as root user in python3? Thanks for your help. -
Why does my Django CreateView not recognise form_valid
I am using the django allauth module to create a user. In views,py I am subclassing CreateView, but I cannot get form_valid to work. It seems not to be being called (I have not imported HttpResponseRedirect but it doesn't complain class SignupPageView(generic.CreateView): form_class = CustomUserCreationForm success_url = reverse_lazy('login') template_name = 'registration/signup.html' def form_valid(self, form): print('form_valid') return HttpResponseRedirect(self.get_success_url()) What am I doing wrong? -
Filter instantly a field in different form in django
In this simplified order, i want to choose the country on Order and instantly filter only cities of this country in OrderItem. Models class Company(models.Model): company = models.ForeignKey('User',on_delete=models.CASCADE) name = models.CharField(max_length=240) class Country(models.Model): company = models.ForeignKey('Company',on_delete=models.CASCADE) name = models.CharField(max_length=240) class City(models.Model): country = models.ForeignKey('Country', on_delete=models.CASCADE) name = models.DecimalField(max_digits=20, decimal_places=0) class Order(models.Model): company = models.ForeignKey('Company',on_delete=models.CASCADE) country = models.ForeignKey('Country',on_delete=models.CASCADE) class OrderItem(models.Model): order = models.ForeignKey('Order', on_delete=models.CASCADE) city = models.ForeignKey('City',on_delete=models.CASCADE) Forms : class OrderForm(ModelForm): class Meta: model = Order def __init__(self, company , *args, **kwargs): super(OrderForm, self).__init__(*args, **kwargs) self.fields['company'] = forms.ModelChoiceField(queryset=Company.objects.filter(name=company), initial = company) class Order1ItemForm(ModelForm): class Meta: model = Order1Item OrderItemFormSet = inlineformset_factory(Order, OrderItem, form=OrderItemForm, extra=3) Views : class OrderCreate(CreateView): form_class = OrderForm model = Company template_name = "order_form.html" def get_success_url(self): return reverse_lazy('order_list') def get(self, request, *args, **kwargs): company_instance = request.user.company self.object = None form = OrderForm(company_instance) formset = OrderItemFormSet(form_kwargs={"company":company_instance}) return self.render_to_response( self.get_context_data(form=form,formset=formset)) def post(self, request, *args, **kwargs): self.object = None company_instance = request.user.company form = OrderForm(company_instance, self.request.POST) formset = OrderItemFormSet(self.request.POST, form_kwargs={"company": company_instance}) if (form.is_valid() or formset.is_valid()): return self.form_valid(form, formset) else: return self.form_invalid(form, formset) def form_valid(self, form, formset): self.object = form.save() formset.instance = self.object formset.save() return HttpResponseRedirect(self.get_success_url()) def form_invalid(self, form, formset): return self.render_to_response(self.get_context_data(form=form, formset=formset)) In this simplified order, i want to choose the … -
Python server side code generating from OpenAPI and easy to update
I want to convert OpenAPI 3 to django or other server side codes. I know some converters such as swagger-django-generator. https://github.com/praekelt/swagger-django-generator But some solutions are only generate STUB server. The stub server is very nice but the STUB server is not assuming the modification. I seem swagger-django-generator doesn't assume the modification. I want to write OpenAPI documents and generating Typescript client codes and Python server codes. And I modify the logic based on its generating codes. Please tell me about the solution in my situation. -
Checking presence of element in a multiple field value in django template
Let us consider a database values as: name works_in band 1 band 2, band 3 band 2 band 3 band 1, band 2 now let us consider user_band as band 3 in template: {% if user_band in works_in %} Continue next process {% endif %} {% if name == user_band %} Same bands {% endif %} I don't know why conditions are not working if user_band is present in works_in message should be displayed -
How do you create a event model for a group and count hosted and attended event amount per groupmember with Django?
I recently learned how to django with a nice udemy tutorial. So I'm able to create groups and users can join and leave groups. Now I added a feature to the groups where a user can create/host a dinner and others of the group can join the dinner. on top of that I want to keep track of which groupmember hosted how many dinners and which groupmember joined how many dinners, however now when I call the amount of dinners attended by a user, I also get the total amount of dinners a user joined including those of other groups. Ideally a GroupDinner contains all group members with status='unknown' and a groupmember can than choose to attend or decline. So per Dinner there is overview of the groupmembers haven't reacted yet and those who have. So currently I have my models defined like so: Model.py class Group(models.Model): name = models.CharField(max_length=255, unique=True) slug = models.SlugField(allow_unicode=True, unique=True) description = models.TextField(blank=True, default='') description_html = models.TextField(editable=False, default='', blank=True) members = models.ManyToManyField(User, through="GroupMember") def __str__(self): return self.name def save(self, *args, **kwargs): self.slug = slugify(self.name) self.description_html = misaka.html(self.description) super().save(*args, **kwargs) def get_absolute_url(self): return reverse("groups:single", kwargs={"slug": self.slug}) class Meta: ordering = ["name"] class GroupMember(models.Model): group = models.ForeignKey( … -
xhr.send() post request don't pass data
on the typescript side, i have this code that should send post request. note that getCookie function is copied from Django docs exactly like it is. const xhr = new XMLHttpRequest(); xhr.responseType = "json"; xhr.open("POST", `http://localhost:8000/create/`); xhr.setRequestHeader("Content-Type", "application/json"); const coockie = getCookie("csrftoken"); if (coockie) { xhr.setRequestHeader("HTTP_X_REQUESTED_WITH", "XMLHttpRequest"); xhr.setRequestHeader("X-Requested-with", "XMLHttpRequest"); xhr.setRequestHeader("X-CSRFToken", coockie); } xhr.onload = function () { callback(xhr.response, xhr.status); }; xhr.onerror = function (e) { console.log(e); callback({ message: "The request was an error" }, 400); }; xhr.send('{"content":"new text"}'); in views.py @api_view(["POST"]) @permission_classes([IsAuthenticated]) def post_create_view(request, *args, **kwargs): print(request.data) serializer = CreateTweeSerializers(data={request.data}) # raise_exception= if form.error reutnr error and status400 if serializer.is_valid(raise_exception=True): serializer.save(user=request.user) return Response(serializer.data, status=201) return Response({}, status=400) `print(request.data)` return `<QueryDict: {}>` -
How to send error message to the Django generic DeleteView Confirmation Page using JsonResponse
I am trying to use Django generic DeleteView using the confirmation page. The setup is working as intended. Later the business logic was changed to prevent deletion if there are child instances assigned to the object being deleted, using on_delete=models.PROTECT in the model. And the DeleteView has been modified to the following: class TerritoryDeleteView(LoginRequiredMixin, DeleteView): template_name = ".../trty_delete.html" model = Territory success_url = reverse_lazy('territories_list') # THE FOLLOWING MODIFICATION DONE: def delete(self, request, *args, **kwargs): self.object = self.get_object() try: self.object.delete() return HttpResponseRedirect(success_url) except ProtectedError: error_message = "This object can't be deleted, as an Outlet is already assigned to the Territory..." return JsonResponse(error_message, safe=False) The above (modified) view works fine. However, in case it encounters the ProtectedError, the error_message is shown in a blank browser page. How could I display the error_message in the confirmation page (template) itself? -
Issue with showing all videos from DB (QuerySet object has no attribute)
I am uploading a video file to my webpage, which I can also play. However, the moment I want to show all the video files on different page and play them, I get QuerySet object has no attribute I can't figure out what I am doing wrong. Models.py: models.py class VideoModel(models.Model): name = models.CharField(max_length=500) videofile = models.FileField(upload_to='videos/', null=True, verbose_name="") def __str__(self): return self.name + ": " + str(self.videofile) Views.py: views.py class ShowVideosView(View): def get(self, request): form = VideoForm() lastvideo = VideoModel.objects.last() videofile = lastvideo.videofile return render(request, 'videos.html', {'videofile': videofile, 'form': form}) def post(self, request): form = VideoForm(request.POST or None, request.FILES or None) lastvideo = VideoModel.objects.last() videofile = lastvideo.videofile form = VideoForm(request.POST or None, request.FILES or None) if form.is_valid(): name = form.cleaned_data['name'] videofile = form.cleaned_data['videofile'] new_video = VideoModel(name=name, videofile=videofile) new_video.save() context = {'videofile': videofile, 'form': form} return render(request, 'videos.html', context) class ListOfVideosView(View): def get(self, request): all_videos = VideoModel.objects.all() videofile = all_videos.videofile context = {'all_videos': all_videos, 'videofile': videofile} return render(request, 'all_videos.html', context) all_videos.html: all_videos.html {% for video in all_videos %} <video width='400' controls> <source src='{{MEDIA_URL}}{{videofile}}' type='video/mp4' Your browser does not support the video tag. </video> {% endfor %} -
FilePathField adds backslash to the end of path django
This is my model : from django.db import models from project.settings import BASE_DIR class Restaurant(models.Model): logo_img = models.FilePathField(path=BASE_DIR, recursive=True, null=True) when I send a request, the response is as follows : {'logo_img': [ErrorDetail(string='\"/media/tmp/72a68b59ad0047edb4cd275725bff229.jpg\" is not a valid path choice.', code='invalid_choice')]} This is my request body : { "logo_img" : "/media/tmp/72a68b59ad0047edb4cd275725bff229.jpg" } This file path is correct & it exists on server. Why it adds backslash to the end of path? -
Помогите придумать тему для дипломной работы
Я на 4 курсе и паралельно работаю веб. девом. Мой стек: Python, Django, Django REST, FastApi, Flask, JavaScript, XML / JSON, SQL, MySQL, PostgreSQL. Помогите придумать тему для курсача, это должен быть или веб сайтик или телеграм бот с веб. админкой. А то у меня уже ноль идей =( -
NameError: Undefined
I am working on a django project where I define a loop variable in an html file but it is not recognizing the variable. Please look at the code and tell me if there is anything wrong. % for category in categories: <div class="mobile-nav-item dropdown-item dropdown-nav-item toggle-category-sub-dropdown" role="button" aria-label=${_("Options Menu")} aria-expanded="false" tabindex="0" aria-controls="${category.replace(' ','_')}"> <a role="menuitem">${_(category)}</a> <div style="left:100%;top: -1px !important;width: max-content" class="dropdown-category-sub-menu hidden" aria-label=${_("More Options")} role="menu" id="${category.replace(' ','_')}" tabindex="-1"> % for subject in subjectLists: %if category == subject['category']: <div class="mobile-nav-item dropdown-sub-item dropdown-nav-item"><a href="${reverse('about_course', args=[text_type(subject['id'])])}" role="menuitem">${_(subject['name'])}</a></div> %endif % endfor </div> </div> % endfor -
html form elements in for loop with a single submit button in django
if put a submit button below form closing tag it shows the multiple buttons all over the table but what i want it in one submit DATA {% block content %} id studentname Hallticket Number ExamType Medium Barcode OldBarcode Attendance {% for i in students %} {{ i.id }} {{ i.sname }} {{ i.htno }} {{ i.ExamType }} {{ i.medium }} {{ i.Barcode }} {{ i.OldBarcode }} Choose... Present Absent MallPractice {% endfor %} {% endblock %} -
Django Filters not querying data
I'm trying to filter API responses through a web search. After typing a search query it doesn't filter the result. I'm also using pagination. How to solve this do I need to make changes in my filter or View. search query http://127.0.0.1:8000/course-api/subjectlist/?search="ICT"/ after giving this search query still it returns all of the elements through the response. Subject model class Subject(models.Model): def upload_location(instance, filename): return "subject_images/%s/%s" % (instance.subject_name, filename) subject_name = models.CharField(max_length=200, null=True) subject_cover = models.ImageField(null=True, blank=True, upload_to=upload_location,default="subject_images/default.png") description = models.CharField(max_length=500, null=True, blank=True) author = models.ForeignKey(TeacherProfile,on_delete=models.CASCADE,null=True,default=None) subject_type = models.CharField(max_length=100, null=True, blank=True) class_type = models.CharField(max_length=10, null=True, blank=True) short_description = models.CharField(max_length=300,blank=True,null=True) created_at = models.DateTimeField(default=now) filters.py import django_filters from ..models import Subject class SubjectFilter(django_filters.FilterSet): class Meta: model = Subject fields = ['subject_name'] Views.py @api_view(['GET']) def SubjectList(request): paginator = PageNumberPagination() paginator.page_size=5 subjects =SubjectFilter ( request.GET, queryset= Subject.objects.all()) result_page = paginator.paginate_queryset(subjects.queryset,request) serializer = SubjectViewSerializer(result_page,many=True) return paginator.get_paginated_response(serializer.data) -
Checking if an object name exists in UpdateView is giving an error if i want to use the same name
I'm looking for a trick to use UpdateView and update a name of an object, but i want to raise a formerror if one of the other object has the same name. My problem is if i want to Update only f.e point of my object but at the same time I want to use the same name. For example: Object: name = 123 , point = 1 OtherObj: name = 124 , point = 1 If i want to update name to '124' raise a form error, and that's correct. But if i want to update only point, so i want to use the same name, raise a form error. I wrote in my forms.py, this: class CardUpdateForm(forms.ModelForm): card_title = forms.CharField(label="Titolo Card", widget=forms.TextInput(attrs={'class': 'form-control'})) description = forms.CharField(label="Descrizione card", widget=forms.TextInput(attrs={'class': 'form-control'})) # column_id = forms.CharField(label="Nome colonna", widget=forms.TextInput(attrs={'class': 'form-control'})) expiration_date = forms.DateField(label="Data di scadenza", widget=forms.DateInput(attrs={'class': 'form-control'})) class Meta: model = Card fields = [ 'card_title', 'description', 'expiration_date', 'column', 'story_points', ] def __init__(self, *args, **kwargs): self.request = kwargs.pop('request', None) super(CardUpdateForm, self).__init__(*args, **kwargs) def clean(self, *args, **kwargs): card_title = self.cleaned_data.get('card_title') description = self.cleaned_data.get('description') card_title_qs = Card.object.filter(card_title=card_title) if card_title_qs.exists : raise forms.ValidationError('Nome della Card già utilizzato. Per favore inseriscine un altro.') -
Accessing input field values from same form into different apps in django
I am a django framework and Mpesa daraja api beginner. I want to make the amount and phone number to be dynamic in that the values of the same should be obtained from input fields... please help -
SMTPAuthenticationError on Heroku
I am trying to request a reset password from a system deployed on heroku but i get this error. SMTPAuthenticationError at /password-reset/ (534, b'5.7.14 <https://accounts.google.com/signin/continue?sarp=1&scc=1&plt=AKgnsbs\n5.7.14 i1cE5v2I-3UUFLl6jQMnBfbcvZuRiGo_q9k1T5h2XgMGxtKYIJ0sIPE9Jr6zW1X78xQM3\n5.7.14 Py7mrOXSPkPG01upxjbZRi68aLrKIbvG_4uHrli9l7ZVmFnr8CxRNb9JUDGVcm8M>\n5.7.14 Please log in via your web browser and then try again.\n5.7.14 Learn more at\n5.7.14 https://support.google.com/mail/answer/78754 k188sm1479373qkd.98 - gsmtp') I have set all these settings and they seem to be okay but i still get the same error. Kindly help EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = 'smtp.gmail.com' EMAIL_PORT = 587 EMAIL_USE_TLS = True EMAIL_HOST_USER = os.environ.get('EMAIL_USER') EMAIL_HOST_PASSWORD = os.environ.get('EMAIL_PASS') -
Looking for examples in django tests for a website
For a big scale website..i am looking an example on how you can create tests in django for different type of users admin,guest,client,etc.Does anyone have a link or a youtube video to suggest? I am looking for sth more complicated than the simple test examples in django website. Any link would be helpful!