Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
Django queryset with regex returning blank
I made a feature that can call user using @(at sign) and user's nickname. At commentbox, I can use @stackoverflow to notify user's nickanem called stackoverflow. This is part of my code. views.py import re at_sign_object = FreeBoardComment.objects.filter(comment_writer=request.user).order_by("-pk")[0] at_sign = str(at_sign_object) get_nickname = re.findall(r"@([0-9a-zA-Z가-힣]+)", at_sign) print(get_nickname) When user put @ sign and nickname of other user, it successfully prints the nickname of other user. But the problem is, I'm trying to send a notification to that user. So I made a queryset that finds user with their nickname. find_user = CustomUser.objects.filter(nickname=get_nickname) print(find_user) But this code is keep printing blank queryset result like this: I can't understand why my code is not working because I also tried doing this in django shell. like this >>> from users.models import CustomUser >>> find_user = CustomUser.objects.get(nickname="admin") >>> print(find_user) admin -
What are the problems of having two Django projects sharing the same database?
I am building a system that has two components, one is a Web application powered by Django 2.2 and other is a worker that does background processing (its work is not started by the Web app). Both components need to communicate to each other in a bi-directional way. They will use the same database (there is no need to make them independent), inclusive handling the same tables. From Django the Worker will use only the ORM modules, it will own tables that are not known by the Web app (and vice versa). So I will need to run migrations in both components that targets the same database. Are there problems? or for Django that components are seem as two Django apps that use the same database? -
Nginx and gunicron serve django app and media files on the same port
I have a remote server used to serve a django application. when I choose DEBUG=False I had to add a nginx server to serve media files from /media folder. when I try to restart nginx after running gunicron I get an error saying that port 8000 is used. how do I manage to serve the app and the media files on the same port? This is the actual content of mysite_nginx.conf file server { listen 8000; listen [::]:80; ... location / { proxy_pass "http://localhost:8000"; } } -
How fix this error in mysqlclient installation Django?
Command "C:\Users\ASUS\PycharmProjects\FirstSite\venv\Scripts\python.exe -u -c "import setuptools, tokenize;file='C:\Users\ASUS\AppData\Local\Temp\pip-install-fodye6z3\mysqlcl ient\setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" install --record C:\Users\ASUS\AppData\Lo cal\Temp\pip-record-awzk5j0l\install-record.txt --single-version-externally-managed --compile --install-headers C:\Users\ASUS\PycharmProjects\FirstSite\venv\include\site\python3.8\mysqlc lient" failed with error code 1 in C:\Users\ASUS\AppData\Local\Temp\pip-install-fodye6z3\mysqlclient\ -
How to get object_set in serializer from Many to Many?
I want to allow saving some specific field only if it responds to some statement. Let me explain. models.py class classe(models.Model): name = models.CharField(max_length=191) groups = models.ManyToManyField('Group') persons = models.ManyToManyField('Person') class Group(models.Model): name = models.CharField(max_length=191) persons = models.ManyToManyField('Person') class Person: name = models.CharField(max_length=191) serializers.py class GroupSerializer(serializers.ModelSerializer): persons = PersonSerializer(many=True, read_only=True) person_id = serializers.PrimaryKeyRekatedField(queryset=Person.objects.all(), write_only=True) def update(self, instance, validated_data, **kwargs): instance.name = validated_data.get('name', instance.name) person_field = validated_data.get('person_id) classe = instance.classe_set #This one doesn't work person_classe = classe.persons.all() #This one too if (person_field in person_classe): instance.persons.add(person_field) instance.save() return instance So, the person_field can be saved only if the person is in the actual classe. Everything work fine, but the two commented lines don't, so can't access the if statement. Does someone know how can I figure it out ? -
Django static files is working but media is not
I dont understand why my media files is not displaying like my static files. My question is very similar to Django media not loading, static files working because i am also using django-oscar but the answer is not working for me. base.py STATIC_ROOT = os.path.join(BASE_DIR, 'static') MEDIA_ROOT = os.path.join(BASE_DIR, 'media') MEDIA_URL = '/media/' # MEDIA_ROOT = r'C:\Users\Michal\django-react-boilerplate\home\media' STATIC_URL = '/static/' print(STATIC_ROOT) print(MEDIA_ROOT) result of prints C:\Users\Michal\django-react-boilerplate\home\static C:\Users\Michal\django-react-boilerplate\home\media both folders have same files but if i type 127.0.0.1:8000/static/fashion.jpg/ it return image. 127.0.0.1:8000/static/media.jpg/ return error 500 template does not exist. Adding full path image to MEDIA_ROOT is not helping. -
Django KeyError at /admin Exception Value: 'actions'
Learning Django by this book, charter 6 ---- https://github.com/PacktPublishing/Django-2-by-Example Using PyCharm Community After add signalscannot open some urls in admin, see error like "KeyError at /admin/account/profile/" or "KeyError at /admin/images/image/" enter image description here enter image description here I think it becouse pycharm don't find decorators files (common) and action files. But I create in project "common' folder with decorators.py and empty init.py And "action" folder with models.py, utils.py was added. How I can fixed it, can you say me, please? p.s. actions.utils and actions.models was red underline too, i try select "ignore this" in pycharm -
Django Sqlite model class has no attibute objects
I hope you all are in good health. I am newbie working on Django. Currently I am need to retrieve items from the SQLite database and display it on the html through Django back-end. Spend alot time on stack-overflow their are similar questions but didn't find any help View.py from django.shortcuts import render from django.http import HttpResponse from .models import mizoso_table def home(request): context = { "post" : mizoso_table.objects.all() } return render(request,'mizoso/home.html',context=context) def product(request): return render(request,'mizoso/products.html') Models.py from django.db import models import datetime from django.contrib.auth.models import User # Create your models here. class mizoso_table(models.Model): title = models.CharField(max_length=100) content = models.TextField() author = models.ForeignKey(User,on_delete=models.CASCADE) def __str__(self): return self.title models and views class is located in the same folder. I tried it on the shell. Its working fine their. I will be very thankful if someone would help me in finding the bug. Thank you! Shell Picture: -
How to modify Django template variable with JS and return it changes on it
I would like to pass a list of ids to a view when i click on a link: <a href="{% url 'app:manage_ids' %}?ids={{ids}}"> So i have created a template var and pass it to js: {% with ids="" %} <script type="text/javascript"> window.ids = "{{ ids }}"; </script> {% endwith %} I manage object ids when click on checkbox, adding or removing it to a list: $('.checkbox').change(function() { var id = $(this).val(); // if django template var is empty var list_ids = []; // else var list_ids = window.ids; if ($(this).is(':checked')) { list_ids.push(id); // here i have to save it on a django template var to use it on the click link } else { const index = list_ids.indexOf(id); if (index > -1) { list_ids.splice(index, 1); // here i have to save it on a django template var to use it on the click link } } }); Anybody could help me about how to do it ? Thanks you so much. -
Update ImageField without forms in django
I am trying to update an image field in django model from an html form. Update goes fine except for the image field. Please, tell what's wrong in my code. That's my views.py file: ''' def update_product(request, product_id): if request.method=="POST" model_name=request.POST['model_name'] image = request.FILES ['image'] Product.objects.filter(id=product_id).update(model_name=model_name, image=image) return redirect ('listing) ''' That's my html file: ''' <form action={% url update_product product.id %} method ="POST enctype='multipart/form-data'> {% csrf_token %} <input type='text' name='model_name'> <input type='file' name='image'> <button type='submit'> Update </button> </form> -
Can't backup my PostgreSQL database [ peer authentication failed for user "USER" ]
sql file that I backedup a long time ago of my website database and now I'm trying to use it but everytime I use: psql -U <username> -d --password <dbname> -1 -f <filename>.sql it gives me this error peer authentication failed for user "USER" I tried to edit the pg_hba.conf but that did nothing. how can I do it ? -
Missing DIV in admin header in Django on another page
I've modified in admin/base.html of Django the header to include an icon to click to display the dropdown menu but when I'm going to Change Password page, I'm seeing the old default navigation links. How can I modify the Change Password page to include the div with class "dropown" which is present in base.html but not in password_change page? Why is missing here? Thank you for any advice given! Below is the header modified by me to include a dropdown: <!-- Header --> <div id="header"> <div id="branding"> {% block branding %}{% endblock %} </div> {% block usertools %} {% if has_permission %} <div id="user-tools"> <div class="back-ground"> {% block welcome-msg %} {% trans 'Welcome,' %} <strong>{% firstof user.get_short_name user.get_username %} !</strong> {% endblock %} {% block userlinks %} {# {% if site_url %}#} {# <a href="{{ site_url }}">{% trans 'View site' %}</a> /#} {# {% endif %}#} {% if user.is_active and user.is_staff %} {% url 'django-admindocs-docroot' as docsroot %} {% if docsroot %} <a href="{{ docsroot }}">{% trans 'Documentation' %}</a> / {% endif %} {% endif %} </div> <div class="dropdown"> <button onclick="openDropdown()" class="dropbtn"><img src="{% static "admin/img/user.svg"%}" alt="User Menu" style="height: 30px;"></button> <div id="myDropdown" class="dropdown-content"> {% if user.has_usable_password %} <a href="{% url 'admin:password_change' … -
Django, how to extract values list montly from DateField?
I have the following models: class Materiale(models.Model): sottocategoria = models.ForeignKey(Sottocategoria, on_delete=models.CASCADE, null=True) quantita=models.DecimalField(') prezzo=models.DecimalField() data=models.DateField(default="GG/MM/YYYY") I wanna calculate the value given by the following expressions PREZZO*QUANTIA in a monthly's view, but my code does not work: Monthly_views=Materiale.objects.filter(data__year='2020').values_list('month').annotate(totale_mensile=F(('quantita')*F('prezzo'))) -
Is Django 2.2 compatible with Django 3.0
I am using Django version 2.2. Is it possible to use Django 3.0 format on my project without any problems? -
Django 3.0 Reverse for slug based name in urls.py cannot be called in template
I am using Django 3.0 to create a basic website and I am obviously still new. My issue is that I am not able to dynamically call the DetailView using the {% url 'my_page' %} format. I set up an About Us section for which the slug is about-us, and my ulrs.py has name="<-slug:slug>" (I figured this isn't right), and get NoReverseMatch at /, Reverse for 'about-us' not found. 'about-us' is not a valid view function or pattern name. I have a Section model set up as follows in models.py: from django.utils.text import slugify class Section(models.Model): section_title = models.CharField(max_length=200, unique=True) section_bg = models.ImageField(upload_to='section-bg') slug = models.SlugField(unique=True) def save(self, *args, **kwargs): self.slug = slugify(self.section_title) super(Section, self).save(*args, **kwargs) def __str__(self): return self.section_title The relevant views.py view: from django.views.generic.detail import DetailView from . import models class SectionView(DetailView): template_name = "home/section.html" model = models.Section def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) return context And finally, in urls.py: urlpatterns = [ ... path(r'home/<slug:slug>/', views.SectionView.as_view(), name='<slug:slug>'), ... ] Thanks in advance for the help! -
Overlapping div in HTML
I am making a Checkout page using Django and the end result doesn't show the street name as attached. Here is the form for the HTML <div class="md-form mb-5"> {% comment %} <input type="text" id="address" class="form-control" placeholder="1234 Main St"> {% endcomment %} {{ form.street_address }} <label for="address" class="">Street Address</label> </div> <!--address-2--> <div class="md-form mb-5"> {% comment %} <input type="text" id="address-2" class="form-control" placeholder="Apartment or suite"> {% endcomment %} {{ form.apartment_address }} <label for="address-2" class="">Apartment_address (optional)</label> </div> and here is the form.py class CheckoutForm(forms.Form): stree_address = forms.CharField(widget=forms.TextInput(attrs={ 'placeholder': '1234 Main St', 'class': 'form-control' })) apartment_address = forms.CharField(required=False, widget=forms.TextInput(attrs={ 'placeholder': 'Apartment or suite', 'class': 'form-control' })) and here is the result attached -
Django Pass Custom Parameters to Formset
I am using formsets to make multiple forms and display them. I have a subform class Ent_Annotator(forms.Form): ent_cat = forms.ChoiceField(choices=ent_cats) And a form with a custom parameter, name class Ent_Annotation_Form(Ent_Annotator): def __init__ (self,*args,name,**kwargs): self.name = name super().__init__(*args,**kwargs) In my view, I want to create several of these forms in a formset by iterating through a list of names. I know how to pass kwargs with form_kwargs={'name':name}, but I can only pass a single value per kwarg. A method to pass multiple values or another way to display multiple forms on a page with so much variable information would be appreciated. -
Getting 404 error after running Django Project. Bootstrap is also not loading
This is the link of my project. I checked other questions for the same issue but did not find a solution for this issue. This is my project link. -
Reverse with " " no argument Not Found. Django (NoReverseMatchError
I am a beginner in django. I have a problem with class based delete view as its returning a no reverse match error. A dollar symbol is there at the end of the url which I didn't provide. This is the error: NoReverseMatch at /posts/myhome/ Reverse for 'delete_post' with no arguments not found. 1 pattern(s) tried: ['posts/(?P<slug>[^/]+)/delete$'] views.py class DeletePostView(BSModalDeleteView, LoginRequiredMixin, UserPassesTestMixin): model = Post success_url = reverse_lazy('posts:myhome') template_name = 'posts/delete_post.html' def test_func(self): post = self.get_object() if self.request.user == post.user: return True return False html code: <div class="content-section"> <form method="POST"> {% csrf_token %} <div class="modal-body"> <fieldset class="form-group"> <legend class="border-bottom mb-4" style="text-align: center;">Delete Post</legend> <h4 style="text-align: center;">Are you sure you want to delete this post?</h4> </fieldset> <div class="form-group" style="text-align: center;"> <button class="btn btn-sm btn-outline-danger" type="submit">Yes, Delete</button> %}">Cancel</a> --> </div> </div> </form> </div> urls.py urlpatterns = [ path('myhome/', HomePostListView.as_view(), name='myhome'), path('create/', CreatePostView.as_view(), name='create_post'), path('<slug>/', views.detail_post, name='detail_post'), path('<slug>/update', views.update_post, name='update_post'), path('<slug>/delete', views.delete_post, name='delete_post'),] -
Errno 13 Permission denied: '/static' Django file upload issue
I recently deployed my django wesite on apache using mod_wsgi. I was testing everything to make sure i can work on more important things without having to go back and fix something. I was uploading a .xlsx file on the django admin and this error came up: [Errno 13] Permission denied: '/static' This is my settings.py STATIC_ROOT and STATIC_URL line: STATIC_URL = /static/ #STATIC_ROOT = home/alexholst/excelsite/static STATIC_ROOT = os.path.join(BASE_DIR, "..", "static") #STATIFILES_DIR = [ # os.path.join(BASE_DIR, "static") #] Ive serched online for the past 2 hours to no avail. What could this be? -
Django TabularInline raise ValidationError on a specific row
before posting the question here I have checked Raise validation error in inline field Django. But this still does not answer my question, because the error thrown is in the form but not on the exact row. In MyModel.clean function if I raise Validation error I can specify the field which is bad. But how can I raise an error on the bad row of a TabularInline? class MyBaseFormSet(BaseInlineFormSet): def clean(self): super(MyBaseFormSet, self).clean() for index, form in enumerate(self.forms): if form.cleaned_data and not form.cleaned_data.get('DELETE', False): raise ValidationError('test') class MyInline(admin.TabularInline): model = MyModel formset = MyBaseFormSet -
Render dictionary in django template
I have groupby clause built in a django view and then I intend to display the dictionary created in a template. The problem here is that the template instead of displaying values, displays the header fields repeated (screenshot attached so it makes more sense). Any assistance will be appreciated ! Here is the view def did_count_region_groupby(request): region_carrier_groupby = DID_Definition_Model.objects.all().values('region_carrier').annotate(DID_Count=Count('region_carrier')).order_by('DID_Count') region_carrier_groupby_dict = {'region_carrier_groupby' : region_carrier_groupby} return render(request, 'MASTERHANDLER/did_count_region_groupby.html', region_carrier_groupby_dict) and here is the template {% for key, value in region_carrier_groupby %} <tr> <td> {{key}}</td> <td>{{value}}</td> </tr> {% endfor %} -
update a model's field from another model in django
my models.py is : class clients(models.Model): client_id = models.IntegerField(unique=True, primary_key=True ) ' ' money = models.DecimalField(max_digits=10, decimal_places=2,default=0) class transfermoney(models.Model): first_client_id = models.IntegerField() second_client_id = models.IntegerField() amountofmoney = models.PositiveIntegerField() time = models.TimeField(auto_now=True) date = models.DateField(auto_now=True) my serializers.py is : class moneytransfer(serializers.ModelSerializer): def validate(self, data): try: clients.objects.get(client_id = data['first_client_id']) clients.objects.get(client_id = data['second_client_id']) except clients.DoesNotExist: raise serializers.ValidationError("One of the clients does not exist") return data class Meta: model = transfermoney fields = ('__all__') read_only_fields = ('time','date',) my views.py is : class transferingmoney(APIView): def post(self,request): serializer = moneytransfer(data=request.data) if serializer.is_valid(): serializer.save() def update(self,data): client_1 = clients.objects.get(client_id=data['first_client_id']) client_2 = clients.objects.get(client_id=data['second_client_id']) client_1.money -= data['amountofmoney'] client_2.money += data['amountofmoney'] client_1.save() client_2.save() return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) i'm using django rest framework, when i made a post request to "transferingmoney" , it made a record into the "transfermoney" model table ,, but it did not update the "money" field for client_1 or client_2 in the "clients" model please can you help me, what should i do ? -
How to display custom HTML in an autocomplete field in Django admin?
I want to open the related object popup when the user clicks on a selected value in a Django admin autocomplete multi-select field. This requires adding custom HTML to selected values. I did not find any straightforward way to add custom HTML to Django admin built-in autocomplete field, so I'm using the ModelSelect2Multiple field from django-autocomplete-light. So far I haven't found any better way than to stick the HTML into model __str__() and mark it safe. This is admittedly a hack, but works well with ModelSelect2Multiple data-html attribute when making new selections. However, it does not work with saved selections. The models are as follows: class Author(models.Model): name = models.CharField(_('name'), max_length=160) profession = models.CharField(_('profession'), max_length=100) phone = models.CharField(_('phone'), max_length=20, blank=True) email = models.EmailField(_('email'), blank=True) def __str__(self): change_url = reverse('admin:books_author_change', kwargs={'object_id': self.id}) return mark_safe('<span onclick="showRelatedObjectPopup(' f"{{href: '{change_url}?_popup=1', id: 'change_id_authors'}})" f'">{self.name} – {self.profession}</span>') class Book(models.Model): authors = models.ManyToManyField(Author, verbose_name=_('authors'), blank=True) ... The admin configuration is as follows: from dal import autocomplete @admin.register(Book) class BookAdmin(admin.ModelAdmin): def formfield_for_manytomany(self, db_field, request, **kwargs): if db_field.name == 'authors': return forms.ModelMultipleChoiceField( required=False, label=Author._meta.verbose_name_plural.title(), queryset=Author.objects.all(), widget=autocomplete.ModelSelect2Multiple( url='author-autocomplete', attrs={'data-html': True})) return super().formfield_for_foreignkey(db_field, request, **kwargs) When adding an author to the Authors field in the Book change view, the HTML element … -
Migrations Are Not Taking Effect (Django - Python)
I think I have followed the correct process for getting migrations to work but the changes have not seem to have taken effect. I am trying to add a slug field to my Comments class field=models.SlugField(blank=True, max_length=500). Schema sqlite> .schema blog_Comment CREATE TABLE IF NOT EXISTS "blog_comment" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "name" varchar(80) NOT NULL, "email" varchar(254) NOT NULL, "body" text NOT NULL, "created_on" datetime NOT NULL, "active" bool NOT NULL, "post_id" integer NOT NULL REFERENCES "blog_post" ("id") DEFERRABLE INITIALLY DEFERRED); CREATE INDEX "blog_comment_post_id_580e96ef" ON "blog_comment" ("post_id"); sqlite> 0017_auto_20200426_2137.py # Generated by Django 2.2.6 on 2020-04-26 14:37 import datetime from django.db import migrations, models from django.utils.timezone import utc class Migration(migrations.Migration): dependencies = [ ('blog', '0016_auto_20200426_0209'), ] operations = [ migrations.AlterField( model_name='comment', name='created_on', field=models.DateTimeField(default=datetime.datetime(2020, 4, 26, 14, 37, 27, 23071, tzinfo=utc)), ), migrations.AlterField( model_name='comment', name='url', field=models.SlugField(blank=True, max_length=500), ), migrations.AlterField( model_name='post', name='date_posted', field=models.DateTimeField(default=datetime.datetime(2020, 4, 26, 14, 37, 27, 23071, tzinfo=utc)), ), ] class Comment(models.Model): class Comment(models.Model): post = models.ForeignKey(Post,on_delete=models.CASCADE,related_name='comments') name = models.CharField(max_length=80) email = models.EmailField() body = models.TextField() created_on= models.DateTimeField(default = timezone.now()) active = models.BooleanField(default=False) url= models.SlugField(max_length=500, blank=True)