Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
Property field in a django model is not serialized. How to fix?
I have the following model: def get_file_path(instance, filename): return 'files/{0}/{1}'.format(instance.user.username, filename) class File(models.Model): fid = models.UUIDField(primary_key=True, default=uuid.uuid4) user = models.ForeignKey(settings.AUTH_USER_MODEL) file = models.FileField(upload_to=get_file_path) when I try to serialize this model using for example serializers.serialize('json', File.objects.all()) I get: u'[{"model": "app_name.file", "pk": "45f616b4-d028-488e-83c5-878ce1028018", "fields": {"user": 1, "file": "files/username/filename.txt"}}]' I want the serialized json to also include the file field's url which file_obj.file.url returns so I added a property field like so: class File(models.Model): fid = models.UUIDField(primary_key=True, default=uuid.uuid4) user = models.ForeignKey(settings.AUTH_USER_MODEL) file = models.FileField(upload_to=get_file_path) def _get_file_url(self): "Returns file's url" return self.file.url url = property(_get_file_url) However property field url is still not serialized. So I tried to write a custom serializer for the model by extending serializers.ModelSerializer like so: class FileSerializer(serializers.ModelSerializer): class Meta: model = File fields = ('fid', 'user', 'file', 'url') which doesn't work and I get 'module' object has no attribute 'ModelSerializer'. is it because django doesn't have ModelSerializer class and only django rest_framwork does ? if so how do I solve this if I am using django only and not django rest framework ? Thanks. -
Python requests.POST is failing in Django
I have to make a redirection layer in Django. So any get or post request comes needs to be redirected to another server. Since Django Redirect doesn't allow for POST redirection, so we are using python requests module to make post request. So the Django request structure is : requests.post('http://localhost:8080/user/?query=1', auth=('user', 'pass'), data={'key':'value'}) It will be processed in the class based view of post request. class Redirect_Conf(View): def post(self, request, *args, **kwarfs): headers = {'Content-type': 'application/json', 'Accept': 'text/plain'} res = requests.post('http://localhost:8000/configuration/?query=2', auth=('user', 'pass'), data={'key':'value'}) return HttpResponse("Data Received") However, I am getting ConnectionError: ('Connection aborted.', error(111, 'Connection refused')) Please remember that localhost:8080 and localhost:8000 are different servers running. What am I missing here? -
Django form post(AJAX) direct to somewhere else
i know my question is quite vague and also has been asked so many times(but i can't understand any of the solutions).what i want to go is to url search_res/save_tweet and pass data from template show_tweets.html in json format using AJAX. i think my ajax is not working. and when i press button it goes to somewhere http://127.0.0.1:8000/search_res/? I am new to both django and ajax. show_tweets.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Tweets Result</title> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script> save_tweets = function(tweet_id,created_at,text,lang){ alert(tweet_id,created_at,text,lang); $.ajax({ type : 'POST', url : '/search_res/save_tweet/', dataType : 'json', data: { 'tweet_id' : tweet_id, 'created_at' : created_at, 'text' : text, 'lang' : lang }, success: function(data) { alert(data); } }); } </script> </head> <body> <h1 align="center">Tweets Results</h1> <ul> {% for k,v in json_d %} <div> {{ k }} : {{ v.full_text }} <form onsubmit="save_tweets('{{ v.id_str }} , {{ v.created_at }} , {{ v.full_text }} , {{ v.lang }}')">{% csrf_token %} <input type="submit" value="Toxic"/> </form> </div> {% endfor %} </ul> </body> </html> views.py def show_tweets(request): if request.GET['hashtag'] and request.GET['user']: template = loader.get_template('error.html') return HttpResponse(template.render({},request)) else: if request.GET['hashtag']: hashtag= request.GET['hashtag'] try: all_tweets = tweepy.Cursor(api.search, q=hashtag + ' -filter:retweets', tweet_mode='extended').items(100) except: print("error") d = {} cnt = 0 for … -
django clean_data.get is None
I want to make some fields of thwe form required based on the "is_seller" dropdown list . but seller = cleaned_data.get("is_seller") returns None ! these are my codes : models.py class UserProfileInfo(models.Model): user=models.OneToOneField(User,related_name='profile') companyname=models.CharField(blank=True,null=True, ],max_length=128,verbose_name=_('companyname')) phone_regex = RegexValidator(regex=r'^\d{11,11}$', message=_(u"Phone number must be 11 digit.")) cellphone = models.CharField(validators=[phone_regex], max_length=17,verbose_name=_('cellphone')) tel = models.CharField(blank=True,null=True,validators=[phone_regex], max_length=17,verbose_name=_('tel')) state=models.CharField( max_length=128,verbose_name=_('state')) city=models.CharField( max_length=128,verbose_name=_('city')) address=models.CharField(blank=True,null=True, max_length=264,verbose_name=_('address')) is_seller=models.CharField(blank=True,null=True, max_length=2,verbose_name=_('seller')) def __str__ (self): return self.user.username class Meta: verbose_name=_('UserProfileInfo') verbose_name_plural=_('UserProfileInfos') forms.py : class UserProfileInfoForm(forms.ModelForm): CHOICES = (('0','buyer'), ('1','seller'), ('2','both')) is_seller = forms.CharField(widget=forms.Select(choices=CHOICES),label=_('title')) companyname=forms.CharField(required=False,widget=forms.TextInput(attrs={'class':'form-control' ,'style': 'width:60%', 'white-space':'nowrap'}),label=_('companyname')) cellphone = forms.CharField( widget=forms.TextInput(attrs={'class':'form-control' ,'style': 'width:60%'}),label=_('cellphone')) tel = forms.CharField( widget=forms.TextInput(attrs={'class':'form-control' ,'style': 'width:60%'}),label=_('tel')) state=forms.CharField(widget=forms.TextInput(attrs={'class':'form-control' ,'style': 'width:60%'}),label=_('state')) city=forms.CharField( widget=forms.TextInput(attrs={'class':'form-control' ,'style': 'width:60%'}),label=_('city')) address=forms.CharField(required=False, widget=forms.TextInput(attrs={'class':'form-control' ,'style': 'width:100%'}),label=_('address')) class Meta(): model=UserProfileInfo fields=('companyname','tel','cellphone','state','city','address','is_seller') def clean_companyname(self): cleaned_data = super(UserProfileInfoForm, self).clean() seller = cleaned_data.get("is_seller") print(">>>>>>>>>>>>>>>>>>"+ str(seller)) if seller!=0: raise forms.ValidationError(u"Required.") return cleaned_data -
How can I display a TemporaryUploadedFile from Django in HTML as an image?
In Django, I have programmed a form in which you can upload one image. After uploading the image, the image is passed to another method with the type TemporaryUploadedFile, after executing the method it is given to the HTML page. What I would like to do is display that TemporaryUploadedFile as an image in HTML. It sounds quite simple to me but I could not find the answer on StackOverflow or on Google to the question: How to display a TemporaryUploadedFile in HTML without having to save it first, hence my question. All help is appreciated. -
Django: File is only saved when created in admin page
I have a very odd problem: When I create an object for my Custom model in the admin page everything works fine. However, when I fill in the same input in my custom Form in the website it does not work. The problem is the file field: When I input a valid file in the form in the website, it is not saved and so I get a validation error (see clean() function below). Because there is no self.file even when I upload a file. In the admin page it works. Where is the error? Background: Here is my Custom model: # In my models.py class Custom(models.Model): file = models.FileField(max_length=45, upload_to=get_filepath, blank=True) file_info = models.CharField(max_length=50, blank=True) ... def clean(self): if self.file_info and not self.file: raise ValidationError("...") And here is my custom CreateView: class CustomCreate(CreateView): model = Custom form_class = CustomForm def form_valid(self, form): self.object = form.save(commit=False) self.object.user = self.request.user self.object.save() return super().form_valid(form) -
Accessing to Odoo data with Django REST API
I'm trying to build a Django REST API e-commerce by retrieving data from Odoo, for that I need first of all to connect to odoo database. Any idea of how to do that !? PS: with XML-RPC it was easy but I want to to work with REST Thanks a lot. -
Djano celery for long running task and download the file
I am developing a django app and my app need to user to upload the urls in excel files. On server side i am reading the excel file by each cells, extracting the news article of the urls and generating the summary of article. this process can take upto 5-10 minutes for the long list of urls.I am using celery for managing the long running task but somehow server is giving me error 500 - Internal server error after 2 min without completing the task. enter code here Setting.py BROKER_URL = 'django://' CELERY_ACCEPT_CONTENT = ['json'] CELERY_TASK_SERIALIZER = 'json' CELERY_RESULT_SERIALIZER = 'json' celery_app.py from __future__ import absolute_import import os import django from celery import Celery from django.conf import settings from kombu import serialization serialization.registry._decoders.pop("application/x-python-serialize") os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'news.settings') django.setup() app = Celery('news') app.config_from_object('django.conf:settings') app.autodiscover_tasks(lambda: settings.INSTALLED_APPS) summary.py @shared_task from celery import shared_task def WritesummaryfromArticleToExcel(input_file,noofline,lang): try: data=False wb = xlrd.open_workbook(file_contents=input_file.read()) wb_sheet=wb.sheet_by_index(0) df=pd.DataFrame(columns=['Full Article','Summary']) for rownum in range(0, wb_sheet.nrows): # for colnum in range(0,1): try: rw=wb_sheet.cell_value(rownum,0) if type(rw)==float or type(rw)==int: rw= str(rw) # if len(rw)>15000: data=True articletext=rw # nooflines=request.data["numberofline"] lantext="" lantexttemp= articletext.split('\n')[0:2] for l in lantexttemp: lantext=lantext +"\n" +l lan=detect(lantext) -
Django: How to delete token after it is used?
In Django, I am generating tokens for account activation. Here is the actual code: 'uid': urlsafe_base64_encode(force_bytes(user.pk)), 'token': default_token_generator.make_token(user), The problem is once it is used it is still valid. Django password reset mechanism (password_reset_confirm() view) somehow invalidates the token after it is used. How can I do the same? -
file upload in angular 2 through django REST
I am trying to file upload in angular 2 through django. I have done the below mentioned code but I am stuck now. I have the following view in django (views.py) def upload_csv(request): mydb = MySQLdb.connect(host='localhost', user='root', passwd='root', db='testtpo') cursor = mydb.cursor() csv_data = csv.reader(file('testingupload.csv')) for row in csv_data: cursor.execute('INSERT INTO testcsv(names, \ classes, mark )' \ 'VALUES("%s", "%s", "%s")', row) mydb.commit() cursor.close() print ("Done") the following dataupload.component.ts import { Http, Headers, Response } from '@angular/http'; import { Observable } from 'rxjs/Rx'; import { OnInit, ElementRef, ViewChild } from '@angular/core'; import { FileUploader, FileItem } from 'ng2-file-upload'; import { BrowserModule } from '@angular/platform-browser'; import { Component, HostListener } from '@angular/core'; import { environment } from '../../../../environments/environment'; import { Services } from '../../../../services/services'; import 'rxjs/add/operator/toPromise'; import 'rxjs/Rx'; @Component({ selector: 'dataupload', templateUrl: './dataupload.html', }) export class NewComponent1 { constructor(private http: Http) { } public modelUploader:FileUploader = new FileUploader({url: environment.serverUrl+'/api/upload_csv'}); public uploadFile(file, fileType: string): void { if(fileType == 'model') { this.modelUploader.uploadItem(file); } else { console.log("It is not happening"); } } } and the following component.html <div class="dropdown-content"> <div class="row"> <div class="col-md-3"> <h3 style="margin-left: 40px; margin-top: -30px ">Model</h3> <input type="file" class="form-control" ng2FileSelect [uploader]="modelUploader" /><br/> </div> <div class="col-md-8" style="margin-bottom: 40px; margin-left: 30px; "> <h4 style="margin-bottom: … -
Mopidy Installation Error
Installing on Mac High Sierra, through a fresh installation of Brew, following the instructions on the website to the letter. It throws this error; Traceback (most recent call last): File "/usr/local/bin/mopidy", line 5, in <module> from pkg_resources import load_entry_point File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources/__init__.py", line 3095, in <module> @_call_aside File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources/__init__.py", line 3081, in _call_aside f(*args, **kwargs) File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources/__init__.py", line 3108, in _initialize_master_working_set working_set = WorkingSet._build_master() File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources/__init__.py", line 658, in _build_master ws.require(__requires__) File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources/__init__.py", line 959, in require needed = self.resolve(parse_requirements(requirements)) File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources/__init__.py", line 846, in resolve raise DistributionNotFound(req, requirers) pkg_resources.DistributionNotFound: The 'Mopidy==2.1.0' distribution was not found and is required by the application Clearly it's not finding the distro even though it's in the default location with all my other packages. Any idea why? -
Nested django form for foreignkey model
I have two models that look something like class Address(models.Model): line1 = models.CharField(max_length=128, help_text="Address Line 1") city = models.CharField(max_length=128) state = USStateField() zipcode = USZipCodeField() class Company(models.Model): name = models.CharField(max_length=100) address = models.ForeignKey('Address', on_delete=models.PROTECT) The actual classes have many more fields and so I would like to automatically generate forms for creating a new company, and so I am using Django's ModelForm. Howevere, I would like to let the user choose between choosing an existing address or creating a new one all in one form. Is there a way to nest a AddressModelForm inside of a ComanyModelForm? class CreateAddressForm(forms.ModelForm): class Meta: model = Address exclude = [] class CreateCompanyForm(forms.ModelForm): class Meta: model = Company exclude = [] # Use nested form for address # custom widget maybe? How should I approach this problem? Thanks! -
i have two projects in django i can not open admin site for my second project,but i can open for my first project,can any one help me
AttributeError at /admin/ 'WSGIRequest' object has no attribute 'user' Request Method: GET Request URL: http://127.0.0.1:8000/admin/ Django Version: 2.0.2 Exception Type: AttributeError Exception Value: 'WSGIRequest' object has no attribute 'user' Exception Location: C:\Users\vaaz\Desktop\venv\lib\site-packages\django\contrib\admin\sites.py in has_permission, line 186 Python Executable: C:\Users\vaaz\Desktop\venv\Scripts\python.exe Python Version: 3.4.3 Python Path: ['C:\Users\vaaz\website1', 'C:\Windows\system32\python34.zip', 'C:\Users\vaaz\Desktop\venv\DLLs', 'C:\Users\vaaz\Desktop\venv\lib', 'C:\Users\vaaz\Desktop\venv\Scripts', 'C:\Python34\Lib', 'C:\Python34\DLLs', 'C:\Users\vaaz\Desktop\venv', 'C:\Users\vaaz\Desktop\venv\lib\site-packages'] Server time: Mon, 12 Mar 2018 10:21:49 +0000 -
Error django permissions
I hav an error with user permissions in django. This view register collaborator blog, create the user and add the permission because appear in auth_user_user_permissions database table, but when user login to admin panel django doesn't appear any model to create. database table django admin view def work_with_our(request): if request.method == 'POST': user_form = forms.CustomRegisterColaboratorForm(data=request.POST) if user_form.is_valid(): blog_colaborator = user_form.cleaned_data.get('blog_colaborator') user = user_form.save(commit=False) user.is_staff = True user.save() if blog_colaborator == True: permissions = Permission.objects.get(name='Can add post') user.user_permissions.add(permissions) else: user_form = forms.CustomRegisterColaboratorForm() return render(request, 'work_with_our.html', { "user_form": user_form }) Please help because i don't know which is the problem. Thanks in advance. -
Creating an abstract model for
I deleted my previous question, since it was terribly worded and my non-working examples were just confusing. I have a series of models, such as Vehicle, Computer, Chair, and whatnot. My goal is to be able to attach an arbitrary number of images to each of them. That's my question: what's the best design pattern to achieve this? What I've tried so far is to create an abstract model, AttachedImage. I then inherit from this model, and create more specific models, like VehicleImage, ComputerImage, or ChairImage. But this doesn't feel like the right way to pursue this. -
NameError: name 'request' is not defined when trying to request user.connection and user.dn
I am trying to request the connection and the dn of the logged in user for my webapp. I currently work with LDAP and I have this ModifiableConnection class in my modify.py. A user should edit his name in a GUI-based app, and it should automatically be changed in the ldap. from ldap3 import Server, Connection, ALL, MODIFY_REPLACE class ModifiableConnection(object): def __init__(self, connection, dn): self.conn = connection self.dn = dn def modify_attr(self, attrname, values): modlist = [(MODIFY_REPLACE, attrname, values)] self.conn.modify(dn, self.conn.user, modlist) @property def firstname(self): pass @firstname.setter def firstname(self, val): self.modify_attr('givenName', [val]) @property def lastname(self): pass @lastname.setter def lastname(self, val): self.modify_attr('sn', [val]) mod_con = ModifiableConnection(request.user.connection, request.user.dn) This is how I call it (views.py): def edit_profile(request): if request.method == 'POST': form = EditProfileForm(request.POST, instance=request.user) if form.is_valid(): mod_con = ModifiableConnection(request.user.connection, request.user.dn) mod_con.firstname = request.POST['first_name'] mod_con.lastname = request.POST['last_name'] form.save() return redirect(reverse('accounts:view_profile')) else: form = EditProfileForm(instance=request.user) args = {'form': form} return render(request, 'accounts/edit_profile.html', args) and this is the error I get: mod_con = ModifiableConnection(request.user.connection, request.user.dn) NameError: name 'request' is not defined The error is in my modify.py. I do not really know if I have to import anything or If I am missing something. If you have any idea, do not hesitate to post … -
Django model inheritance with arguments
I'm trying to define a base, abstract model for "attached images", that I can then hook up to any other model with a foreign key relation to it. My idea is to use an argument that defines which Model will the AttachedImage model be hooked up to through a ForeignKey relation. I have my abstract model defined like so: class AttachedImage(models.Model): parent_object = None uuid = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) author = models.ForeignKey(User, on_delete=models.CASCADE) image = models.ImageField(upload_to=image_path) # TO FIX: añadir la ruta is_default = models.BooleanField(default=False) class Meta: abstract = True def __init__(self, parent_model): super().__init__(self) self.parent_object = models.ForeignKey(parent_model, on_delete=models.CASCADE) And then I try to inherit from it like this: class VehicleImage(AttachedImage(Vehicle)): pass But when I try to run my migrations, I get this error: class VehicleImage(AttachedImage(Vehicle)): TypeError: __init__() takes 2 positional arguments but 4 were given First off, why am I getting this error? And second, and much more important: is this the right pattern to achieve my goal? -
sublime text: Django how to view source of imports
I have django project inside a python virtualenv. In one of my models i have: from django.contrib.auth.models import AbstractUser, BaseUserManager I want to see the source code of AbstractUser and BaseUserManager is it possible that sublime text knows where they are located and show me -
How to submit a mock url? (Django)
I have a problem, I can't test my forms by using requests. add_playlist = self.client.post(reverse('new-playlist'), data={'url': 'https://dailyiptvlist.com/dl/it-m3uplaylist-2018-03-11-1.m3u'}) I need to create a mock response for 'https://dailyiptvlist.com/dl/fr-m3uplaylist-2018-03-06.m3u' so it will be acceptable to test adding a channel while the url isn't maintained. So, I need to create a mock response for this url. I can't imagine how to do this. Please help me. -
response.get('X-Frame-Options') on stripe failed payment
I am trying to customize stripe payment gateway using elements, I followed the documentation provided on stripe website and on this tutorial http://zabana.me/notes/how-to-integrate-stripe-with-your-django-app.html. I managed to get my payment charged and I am now testing for defect card such as Charge is declined with an expired_card code that stripe provide but I am getting an error that I do not even understand so hard for me to debugg what is going on ... error : if response.get('X-Frame-Options') is not None: AttributeError: 'tuple' object has no attribute 'get' my code: payment-views.py: from Authentication_project import settings from django.views.generic import TemplateView from django.shortcuts import redirect import stripe stripe.api_key = settings.STRIPE_SECRET_KEY class payment_form(TemplateView): template_name = "transaction.html" def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context['stripe_key'] = settings.STRIPE_PUBLIC_KEY return context def checkout(request): if request.method == "POST": token = request.POST.get("stripeToken") print(token) print(request.user.email) try: charge = stripe.Charge.create( amount=2000, currency="usd", source=token, description="SoftScores Team Assessment", receipt_email=request.user.email, ) except stripe.error.CardError as ce: return False, ce else: return redirect('index') Any idea how to solve it ? -
Trouble attaching postgres database to Heroku application
I have a Django application with PostgresQL database. I have successfully deployed the application on heroku (myapp), but getting trouble attaching the local database to it. To attach the local database to my Heroku application (myapp), I followed these steps 1.Created database (db-name) dump file sudo pg_dump -U postgres db-name > db-name.dump 2.Uploaded dump file online where its accessible through link https:url/db-name.dump on following the above link db-name.dump file gets downloaded 3.Used pg:backups:restore command to restore the backup on my heroku application heroku pg:backups:restore 'https:url/db-name.dump' DATABASE_URL --confirm myapp On issuing the above pg:backups:restore command, I am getting an error Restoring... ! ▸ An error occurred and the backup did not finish. ▸ ▸ waiting for restore to complete ▸ pg_restore: [archiver] did not find magic string in file header ▸ pg_restore finished with errors ▸ waiting for download to complete ▸ download finished successfully ▸ ▸ Run heroku pg:backups:info r004 for more details. Any guessed whats going on here.. -
Django: Multiple values in Radio Select Form
I've got a radio select form that displays addresses that the user has saved. Currently, when the user visits the "select address" template, they are only shown the 'street' field for each address that they've saved. This is controlled by the "return self.address" line below as I've established through testing. I'd like user to see the street, city, and state of each of the addresses that he/she has saved. From the list, they'll select the radio button next to the address that they'd like to ship to. models.py class Order(models.Model): user = models.ForeignKey(UserCheckout, null=True, on_delete=models.CASCADE) billing_address = models.ForeignKey(UserAddress, related_name='billing_address', null=True, on_delete=models.CASCADE) order_id = models.CharField(max_length=20, null=True, blank=True) class UserAddress(models.Model): street = models.CharField(max_length=120, null=True, blank=True) city = models.CharField(max_length=120) state = models.CharField(max_length=120, choices=STATE_CHOICES, null=True, blank=True) def __str__(self): return self.address I'm using a class based view. Here are some functions within that view that I belive are controlling the output within the template: def get_addresses(self, *args, **kwargs): user_check_id = self.request.session.get("user_checkout_id") user_checkout = UserCheckout.objects.get(id=user_check_id) b_address = UserAddress.objects.filter(user=user_checkout) return b_address def get_form(self, *args, **kwargs): form = super(AddressSelectFormView, self).get_form(*args, **kwargs) b_address = self.get_addresses() form.fields["billing_address"].queryset = b_address return form Within the template, I've got the following: {% csrf_token %} {{ form }} <input type='submit' value='Select' /> </form> I … -
Serializing nested object in Django Rest Framework
I'm trying to serialize a json that must have a token string and a nested user object (which has its own serializer). I'd like to have something like: class LoginResponseSerializer(serializers.Serializer): token = serializers.CharField(read_only=True) user = UserSerializer(read_only=True) But this is not working, I don't know how should I create this serializer and how to pass the data. Thank you very much -
django: Create custom user with email as login and other fields
I am using Django 2.0.3. I want email as the username and also First Name and Last Name as required fields. Apart from this,later the user can update the gavtar (models.ImageField) and aboutme (models.CharField(max_length=140)), dateofbirth, country, city. So what is the best way to do this in Django. -
Use raw URL or static URL for images?
Is there any difference when using: <img src="{% static 'images/someimage.png' %}" and <img src="https://s3.us-east-2.amazonaws.com/my-bucket/static/images/someimage.png"