Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
Wagtail: How to filter text in streamfield within model.py
I would like to write a filter which replaces some $variables$ in my streamfield text. What is the best way to do this in my "Page" model? I tried the following but it is sometimes not working if I save my model as draft and publish it afterwards. Does anyone know a better way doing this? class CityPage(Page, CityVariables): cityobject = models.ForeignKey(CityTranslated, on_delete=models.SET_NULL, null=True, blank=True) streamfield = StreamField(BasicStreamBlock, null=True, blank=True) content_panels = Page.content_panels + [ FieldPanel('cityobject', classname="full"), StreamFieldPanel('streamfield'), ] def get_streamfield(self): for block in self.streamfield: if type(block.value) == unicode: block.value = self.replace_veriables(block.value) elif type(block.value) == RichText: block.value.source = self.replace_veriables(block.value.source) else: print "notimplemented" return self.streamfield And this is just the class which replaces $variables$ with values from my database. class CityVariables(): def replace_veriables(self, repstr): reprules = self.get_city_context() for key, value in reprules.iteritems(): repstr = repstr.replace(key, value) return repstr def get_city_context(self): context = {} if self.cityobject.population: context['$population$'] = unicode(self.cityobject.population) if self.cityobject.transregion: context['$region$'] = unicode(self.cityobject.transregion) return context -
I don't know how to display my customuser and user in same form
I have 2 models: teacher and student. They both extend User class with a OneToOneField and they both have receivers defined for creation and saving. Now, in my forms I can only display the fields from student or teacher only, the other fields that come with user I don't know how to include them. But I want that a student or a teacher won't be able to create account, unless all fields are filled in. Here are my forms and view: class StudentSignUpForm(forms.ModelForm): class Meta: model = Student fields = ('student_ID', 'photo', 'phone') class TeacherSignUpForm(forms.ModelForm): class Meta: model = Teacher fields = ('academic_title', 'photo', 'phone', 'website', 'bio') class StudentSignUpView(CreateView): model = User form_class = StudentSignUpForm template_name = 'student_signup_form.html' def get_context_data(self, **kwargs): kwargs['user_type'] = 'student' return super().get_context_data(**kwargs) def form_valid(self, form): user = form.save() login(self.request, user) return redirect('index') class TeacherSignUpView(CreateView): model = User form_class = TeacherSignUpForm template_name = 'teacher_signup_form.html' def get_context_data(self, **kwargs): kwargs['user_type'] = 'teacher' return super().get_context_data(**kwargs) def form_valid(self, form): user = form.save() login(self.request, user) return render_to_response('index.html', {'form': form},) -
ImportError: cannot import name 'users'
I am new to python , I am building djangorestframework API following below tutorial http://www.django-rest-framework.org/tutorial/quickstart/ I have configured Python 3.5 PIP 9.0.1 Django 2.0 tutorial/tutorial/urls.py from django.conf.urls import url, include from django.contrib import users from rest_framework import routers router = routers.DefaultRouter() router.register(r'users', views.UserViewSet) router.register(r'groups', views.GroupViewSet) # Wire up our API using automatic URL routing. # Additionally, we include login URLs for the browsable API. urlpatterns = [ url(r'^', include(router.urls)), url(r'^users/', user.site.urls), ] Error : File "/home/pradeep/tutorial/tutorial/tutorial/urls.py", line 18, in from django.contrib import users ImportError: cannot import name 'users' -
How to provide additional data in "PUT" request for update in Django REST Framework?
Here is what I have so far: [serializers.py] class EmployeeSerializer(serializers.ModelSerializer): id = serializers.IntegerField(read_only=True) user = UserSerializer(required=False) company = serializers.CharField(read_only=True) employee_type = serializers.ChoiceField(choices=EMPLOYEE_TYPES, default='manager') is_blocked = serializers.BooleanField(required=False) def update(self, instance, validated_data): instance.user = validated_data.get('user', instance.user) instance.company = validated_data.get('company', instance.company) instance.employee_type = validated_data.get('employee_type', instance.employee_type) instance.is_blocked = validated_data.get('is_blocked', instance.is_blocked) instance.save() return instance [views.py] class EmployeeDetail(APIView): def get_employee(self, pk): try: return Employee.objects.get(pk=pk) except Employee.DoesNotExist: raise Http404 def put(self, request, pk, format=None): employee = self.get_employee(pk) serializer = EmployeeSerializer(employee, data=request.data) if serializer.is_valid(): serializer.save() return JsonResponse(serializer.data) else: return JsonResponse(serializer.errors, status=status.HTTP_400_BAD_REQUEST) [request] http -a admin:password PUT http://localhost:8000/api/employees/list/2/ As a result I am able to update that employee with id=2, but the only thing that I am able to change is "employee_type" cause it has default value = 'manager', and if "employee_type" of that employee with id=2 is let's say "admin" after my request it will become "manager". The problem is that I can't figure out how to add some extra data to my request so I would be able to change "employee_type" to "director" for example, is something like below can be accomplished ? [request_as_I_want] http -a admin:password PUT http://localhost:8000/api/employees/list/2/employee_type='director'/company='some_value'/ Is that can be done, or I misunderstand something ? -
Django Posts not showing on live server
I made a small blog site and is not showing all the items from the database. If i try to see the posts from my phone i see only 3 posts, when in my DB there are 9. When i click on one post i got a Not Found error saying that the requested URL posts/legea etc was not found on server. This is the link that should have all of the posts: http://cohen.ro/posts/ However, if i enter in admin trhourgh site/admin i can see all of the posts in DB and when i go back to the site all of the items are out there and i can read the posts. Can someone, please help me in order to fix this?! thank you! My post List: {% extends "base.html" %} {% load crispy_forms_tags %} {% block head_title %} Blog | {% endblock %} {% block content %} <div class="container-fluid" style="width:91%;color: currentColor;!important;"> <div class="row" id="list_posts" style="background-color: white;padding-top: 40px;"> <br/> <br/> <br> {% for obj in object_list %} <div class="col-sm-4"> <div class="thumbnail"> {% if obj.image %} <img src="{{ obj.image.url }}"/> {% endif %} <div class="caption" style="color:currentColor"> {% if obj.draft %} <h3>Staff Only Draft</h3> {% endif %}{% if obj.publish > today %}<h3>Staff … -
How to use PostgreSQL ArrayAgg function on a grouped by query set in Django ORM?
To keep it simple I have four tables(A, B, Category and Relation), Relation table stores the Intensity of A in B and Category stores the type of B. A <--- Relation ---> B ---> Category I am trying to eliminate joins in my query to reduce calculations time using PostgreSQL's ArrayAgg and indexing feature of the database based on this gist. (Since there are 18000 relations, 4000 Bs, and 1500 categories my calculations of each report would take almost two hours) and the error I get is: psycopg2.ProgrammingError: aggregate functions are not allowed in GROUP BY LINE 1: ... U0."id", U2."B" HAVING U0."id" = ANY((ARRAY_AGG(... I have used Brad Martsberger solution to my previous question to calculate sum of each A's intensity occurred in B grouped by B's categories, Minimum and Maximum of calculated Intensity-sums in each category of B and the rate of occurrence of each A in each B category and the occurrence of B itself in that category : annotation0 = { 'SumIntensity': Sum('ARelation__Intensity'), 'A_Ids': ArrayAgg('id') } annotation1 = { 'BOccurrence' : Count('id', distinct=True), } sub_filter0 = Q(id__any=OuterRef('A_Ids')) sub_filter1 = Q(Category_id=OuterRef('ARelation__B__Category_id')) subquery0 = A.objects.filter(sub_filter0).values('id','ARelation__B__Category_id').annotate(**annotation0).order_by('-SumIntensity').values('SumIntensity')[:1] subquery1 = A.objects.filter(sub_filter0).values('id','ARelation__B__Category_id').annotate(**annotation0).order_by('SumIntensity').values('SumIntensity')[:1] subquery2 = B.objects.filter(sub_filter1).values('Category_id').annotate(**annotation1).values('BOccurrence')[:1] result = A.objects.values( 'id','id','ARelation__B__Category_id' ).annotate( **annotation0 ) … -
Django Ubuntu 16.04 "unsupported hash type"
I've deployed a web app to an Ubuntu 16.04 VM. I implemented the standard Django login by the books. Everything is working properly on my production environment (OS X); however, when I attempt to login I receive the error ExceptionValue: unsupported hash type Ubuntu is running python 3.5.2 OS X is running python 3.6.1 Both are running Django Version 1.11.6 My requirements.txt blessings==1.6 bpython==0.16 certifi==2017.7.27.1 chardet==3.0.4 curtsies==0.2.11 Django==1.11.6 django-extensions==1.9.6 geopy==1.11.0 greenlet==0.4.12 idna==2.6 psycopg2==2.7.3.2 Pygments==2.2.0 pytz==2017.2 requests==2.18.4 six==1.11.0 urllib3==1.22 wcwidth==0.1.7 I am using a virtual environment to run this project. The traceback path is as follows, Traceback: File "/home/user_name/proj_folder/my_venv/lib/python3.5/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/home/user_name/proj_folder/my_venv/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response 187. response = self.process_exception_by_middleware(e, request) File "/home/user_name/proj_folder/my_venv/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response 185. response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/home/user_name/proj_folder/my_venv/lib/python3.5/site-packages/django/contrib/auth/views.py" in inner 54. return func(*args, **kwargs) File "/home/user_name/proj_folder/my_venv/lib/python3.5/site-packages/django/contrib/auth/views.py" in login 150. )(request) File "/home/user_name/proj_folder/my_venv/lib/python3.5/site-packages/django/views/generic/base.py" in view 68. return self.dispatch(request, *args, **kwargs) File "/home/user_name/proj_folder/my_venv/lib/python3.5/site-packages/django/utils/decorators.py" in _wrapper 67. return bound_func(*args, **kwargs) File "/home/user_name/proj_folder/my_venv/lib/python3.5/site-packages/django/views/decorators/debug.py" in sensitive_post_parameters_wrapper 76. return view(request, *args, **kwargs) File "/home/user_name/proj_folder/my_venv/lib/python3.5/site-packages/django/utils/decorators.py" in bound_func 63. return func.__get__(self, type(self))(*args2, **kwargs2) File "/home/user_name/proj_folder/my_venv/lib/python3.5/site-packages/django/utils/decorators.py" in _wrapper 67. return bound_func(*args, **kwargs) File "/home/user_name/proj_folder/my_venv/lib/python3.5/site-packages/django/utils/decorators.py" in _wrapped_view 149. response = view_func(request, *args, **kwargs) File "/home/user_name/proj_folder/my_venv/lib/python3.5/site-packages/django/utils/decorators.py" in bound_func 63. return func.__get__(self, type(self))(*args2, **kwargs2) File … -
How to read response header from upstream server in nginx
I wanted to read the custom header and proxy the request to some gateway server. My configurations: location /route { proxy_set_header User $upstream_http_user; proxy_set_header Authorization ""; proxy_pass http://127.0.0.1:3000/postdata/; proxy_method POST; } upstream server code: response = Response() response['User'] = str(user.username) response['X-Accel-Redirect']='/route' return response -
postgresql - django.db.utils.OperationalError: could not connect to server: Connection refused
Is the server running on host "host_name" (XX.XX.XX.XX) and accepting TCP/IP connections on port 5432? typical error message while trying to set up db server. But I just cannot fix it. my django db settings: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'db_name', 'USER': 'db_user', 'PASSWORD': 'db_pwd', 'HOST': 'host_name', 'PORT': '5432', } } I added to pg_hba.conf host all all 0.0.0.0/0 md5 host all all ::/0 md5 I replaced in postgresql.conf: listen_addresses = 'localhost' to listen_addresses = '*' and did postgresql restart: /etc/init.d/postgresql stop /etc/init.d/postgresql start but still getting the same error. What interesting is: I can ping XX.XX.XX.XX from outside and it works. but I cannot telnet: telnet XX.XX.XX.XX Trying XX.XX.XX.XX... telnet: connect to address XX.XX.XX.XX: Connection refused telnet: Unable to connect to remote host If I telnet the port 22 from outside, it works: telnet XX.XX.XX.XX 22 Trying XX.XX.XX.XX... Connected to server_name. Escape character is '^]'. SSH-2.0-OpenSSH_6.7p1 Debian-5+deb8u3 If I telnet the port 5432 from inside the db server, I get this: telnet XX.XX.XX.XX 5432 Trying XX.XX.XX.XX... Connected to XX.XX.XX.XX. Escape character is '^]'. same port from outside: telnet XX.XX.XX.XX 5432 Trying XX.XX.XX.XX... telnet: connect to address XX.XX.XX.XX: Connection refused telnet: Unable to connect to remote host … -
Sending AJAX data to Django view
I am trying to send text through AJAX from a template to a view and save it to a text file, however, I somehow cannot get AJAX to recognize the view. I have a debugging print statement that doesn't go off (sys.stderr.write(repr("I'm in submit text") + '\n')). I have tested AJAX outside of the GET function and it works. I think is has to be an issue with my URL's but I can't seem to find the problem. views.py def submit_text(request): text = '' sys.stderr.write(repr("I'm in submit text") + '\n') if request.method == 'GET': text = request.GET['submitted_text'] sys.stderr.write(repr("Here") + '\n') downloads_folder = ('/Users/<username>/Downloads') file_path = os.path.join(downloads_folder, 'codetext.txt') f = open(file_path, 'w') f.write(text) f.close() return HttpResponse() AJAX $(document).ready(function(){ $('#submit-button').click(function(){ var text; text = editor.getValue(); $.get('/assignments/submit/'), {submitted_text: text}, function(){ $('#submit-button').addClass('btn-sm'); }; }); }); application URL's urlpatterns = [ url(r'^$', views.user_login, name='user_login'), url(r'^logout/$', views.user_logout, name='logout'), url(r'^submit/$', views.submit_text, name='submit_text'), url(r'^(?P<assignment_name_slug>[\w\-]+)/$', views.show_assignment, name='show_assignment') ] project URL's urlpatterns = [ url(r'^$', views.index, name="index"), url(r'^assignments/', include('mainapp.urls')), url(r'^admin/', admin.site.urls), ] -
how to download a file in django
I have few files stored in /media/documents. I've also set the MEDIA_URL and MEDIA_ROOT in settings.py and have given appropriate url in urls.py. So now how can I add a link to the files present in the folder so as to download it? -
Python Django I want remove language code in url(path)
I want remove language code in url for example select en select jp select cn I want it to appear as www.abc.com instead of www.abc.com/jp, www.abc.com/cn. I want to get language code from session and activate it. not url help me urls.py urlpatterns += i18n_patterns( url(r'^', include('web.urls')), prefix_default_language=False ) helpertags.py @register.simple_tag(takes_context=True) def change_lang(context, lang=None, *args, **kwargs): """ Get active page's url by a specified language Usage: {% change_lang 'en' %} """ path = context['request'].path url_parts = resolve(path) url = path cur_language = get_language() try: activate(lang) url = reverse(url_parts.view_name, kwargs=url_parts.kwargs) finally: activate(cur_language) print("%s" % url) return "%s" % url templates.html <ul class="dropdown-menu"> {% get_available_languages as LANGUAGES %} {% get_language_info_list for LANGUAGES as languages %} {% for language in languages %} <li><a href="{% change_lang language.code %}" class="btn-lang">{{ language.code }}</a></li> {% endfor %} </ul> -
Django REST client test with specific IP
The Django REST docs read the address from META. So I have to create Whitelist model storing the ip-address/subnet for it. Not a big deal I had all 302 subnets in my database already. from rest_framework import permissions class BlacklistPermission(permissions.BasePermission): """ Global permission check for blacklisted IPs. """ def has_permission(self, request, view): ip_addr = request.META['REMOTE_ADDR'] blacklisted = Blacklist.objects.filter(ip_addr=ip_addr).exists() return not blacklisted Problem: I want to test whitelist from other ip-address rather than 127.0.0.1 How can I do that in pytest? -
How to filter a manytomany field before using to compare to another list for filtering the parent model
I need to filter results for records of individuals such that only users who are members of a program that has a non-expired release of information from the individual. Example: User Sam is a member of Program FoodDelivery Individual Mike has signed a release of information authorizing Program FoodDelivery users to see his home address. The release is good for one year from signing. When Sam goes to list all the individuals he has access to through the FoodDelivery program, Mike should initially show up. A release is expired when expiration_date__lte='today' When the Release expires, Mike should no longer show up. I've got it working to the point where users are shown only the individual records which have any release listing the user's program as authorized. How can I filter that list of released programs to only those where the release isn't expired? ``` python # simplified code for the relevant classes. class UserProfile(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE, related_name="user_profile") program_list = models.ManyToManyField('Program', blank=True,) class Program(models.Model): name = models.CharField(max_length=100, blank=True, default='') individual_list = models.ManyToManyField( 'Individual', related_name='program_individual_list', through='ReleaseAuthorization', blank=True ) class Individual(models.Model): name = models.CharField(max_length=100, blank=True, default='') authorized_program_list = models.ManyToManyField( 'Program', related_name='individual_authorized_program_list', through='ReleaseAuthorization', blank=True ) class ReleaseAuthorization(models.Model): individual = models.ForeignKey( Individual, related_name="release_authorization_individual", … -
Django Updating Mode; 2 arguments needed 1given
I'm trying to create a form that will update one specific field in my Model, but I'm apparently passing too many arguments. I think I need all of them, so I don't know where the mistake is. Thanks in advance for your help. HTML <div class=assessment_container> <div id=over> <label class=labels>Results:</label> <form action= "{% url 'Project:new_entry' %}" method="POST"> {% csrf_token %} <textarea name="result"</textarea> <input class="save" type="submit" value="Save"> </form> </div> </div> Urls.py url(r'^new_entry$', views.new_entry, name = "new_entry") Views.py def new_entry(request, tableA_id): new = tableA.objects.edit('TableA_id', request.POST) return redirect('/') Models.py class TableAManager(models.Manager): def edit(self, TableA_id, postData): answer = TableA.objects.get(id=TableA_id) answer.result = postData["result"] answer.save() class TableA(models.Model): first_cat = models.CharField(max_length=50) result = models.TextField() def __str__(self): return str (self.first_cat) objects = TableAManager() -
User shows no results in shell
when im running python manage.py shell and i run the following commands, i get this result. What strikes me as odd, is that I have created 2 users in my website that can join groups. >>> from accounts.models import User >>> User.objects.all() <QuerySet []> this is my accounts/models.py file class User(auth.models.User, auth.models.PermissionsMixin): def __str__(self): return "@{}".format(self.username) However, when i run these commands below, i get the results i want. >>> from groups.models import GroupMember >>> GroupMember.objects.all() <QuerySet [<GroupMember: test2>, <GroupMember: test2>, <GroupMember: test1> groups/models.py class GroupMember(models.Model): group = models.ForeignKey(Group, related_name='memberships') user = models.ForeignKey(User, related_name='user_groups') def __str__(self): return self.user.username class Meta: unique_together = ('group', 'user') Could someone please explain to me why this happens? Running on python 3.5 in django 1.11 Thank you in advance, you guys are awesome. -
Django viewflow - Permission Denied
I understand that each flow node have six (6) REST API methods. But i don't understand about /activate_next/ and /undo/. When i try both of the methods i got an error Permission Denied. Thank you -
Django with MySQL: OperationalError (1054, "Unknown column '' in 'where clause'") when trying to query over Many-To-Many relationship
I realise that there are many previous questions with similar titles, however they are in a different context. I have not been able to find an answer that relates to Django and my particular situation. I have a Many-To-Many relationship between 2 models in Django, as shown below: class User(models.Model): user = models.OneToOneField(settings.AUTH_USER_MODEL, primary_key=True) def __unicode__(self): return self.user.username class Course(models.Model): users = models.ManyToManyField(User, through='UsersTakeCourses') title = models.CharField(max_length = 128) description = models.CharField(max_length = 1024) def __str__(self): return self.title class UsersTakeCourses(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE) course = models.ForeignKey(Course, on_delete=models.CASCADE) mark = models.IntegerField() In Django's views.py, given a username, I want to query the database in order to retrieve all of the courses that particular user is taking. This is my view method: def my_courses(request, user_name): current_user = User.objects.get(username=user_name) current_user_courses = Course.objects.filter(users__pk=current_user.pk) context_dict = {'user_courses': current_user_courses} return render(request, 'FAProject_app/my_courses.html', context_dict) However, when I run the server and try to load the page this view relates to, I get the following error message: OperationalError at /firstaid/my-courses/testuser/ (1054, "Unknown column 'FAProject_app_userstakecourses.user_id' in 'where clause'") I realise this is probably a syntax error in the mySQL query, however I don't know that would happen as Django builds the query itself. Any help is much appreciated. -
Dynamic choice field excluding objects over a certain amount of entries
I am trying to return a list of dates for a form based on the current amount of bookings in a model. The current threshold is set at 6, so If 6 bookings already exist it will exclude it from the list of dates available. Here's my current code def get_available_dates(): dates = next_x_months(12) weds = [last_wednesday(year, month) for year, month in dates] choices = list() for i, wed in enumerate(weds): booking_total = Booking.objects.filter(booking_date=wed) total = booking_total.count() if total >= 6: weds.pop(i) else: choices.append((wed, wed,)) return choices class BookingForm(forms.ModelForm): booking_choice = forms.ChoiceField(choices=get_available_dates()) ... weds returns the following: [datetime.date(2018, 1, 31), datetime.date(2018, 2, 28), datetime.date(2018, 3, 28), datetime.date(2018, 4, 25), datetime.date(2018, 5, 30), datetime.date(2018, 6, 27), datetime.date(2018, 7, 25), datetime.date(2018, 8, 29), datetime.date(2018, 9, 26), datetime.date(2018, 10, 31), datetime.date(2018, 11, 28), datetime.date(2018, 12, 26)] Now, I have some test data in my model. There are 6 entries for 31/1/2018, and 2 entries for 28/2/2018. However, what get_available_dates() is returning drops the 31/1/2018 date (as it should) but also drops 28/2/2018 which it shouldn't. I feel like I'm missing something obvious here. -
Django save data from calling api in views
So i have a views which have a Get and Post request that call to another django project API. But i want to also save the information that i get from the api call. Project 1 has a Appointment table which has these field clinic Id, time, and queueNo. When i do a Post request to Project 2 to make/create an appointment, when successfully created, it will display those 3 field which i want to save into Project 1 Appointment table database. How do i do it ? My Appointment also has a API made so how do i save it there? Here is the code for my view to call api to another django project views.py @csrf_exempt def my_django_view(request): if request.method == 'POST': r = requests.post('http://127.0.0.1:8000/api/test/', data=request.POST) else: r = requests.get('http://127.0.0.1:8000/api/test/', data=request.GET) if r.status_code == 200: # r.text, r.content, r.url, r.json return HttpResponse(r.text) return HttpResponse('Could not save data') -
django-import-export data import use alias
I installed django-import-export app successfully, and I can import data from admin. let's say if I have some database like: name | system_id id | system a | 1 1 | system_a b | 1 2 | system_b so the system_id is a foreign key. The question is I want to import data from excel: name | system c | system_c d | system_d How can I do to make the data corresponding for each other. So I can use the real name of system in my excel. -
Django: import error in test
I have a new project in django, without any test. I think that it should say that all is ok, because there are not tests when I try python manage.py test. Instead of that, I obtained this exit: shell screen Any one know why? -
Django one to many opposite
I have an API endpoint returning pets and their owners. Each owner has a name and one or more pets Each pet has a name and one owner Example Django models: class Owner(models.Model): name = models.CharField(max_length=200) class Pet(models.Model): owner = models.ForeignKey(Owner, on_delete=models.CASCADE) name = models.CharField(max_length=200) I've configured my API to return JSON data like this: [ { "id": 2, "name": "Scotch", "owner": { "id": 2, "name": "Ben" } }, { "id": 3, "name": "Fluffy", "owner": { "id": 1, "name": "Fred" } }, { "id": 1, "name": "Spot", "owner": { "id": 1, "name": "Fred" } } ] Example DRF serializers: class OwnerSerializer(serializers.HyperlinkedModelSerializer): class Meta: model = Owner fields = ("id", "name") class PetSerializer(serializers.HyperlinkedModelSerializer): owner = OwnerSerializer() class Meta: model = Pet fields = ("id", "name", "owner") While that's all fine and dandy, I'd actually like to have an endpoint that returns a list of owners and their pets. So I'd get this data instead: [ { "id": 1, "name": "Fred", "pets": [ { "id": 1, "name": "Spot" }, { "id": 3, "name": "Fluffy" } ] }, { "id": 2, "name": "Ben", "pets": [ { "id": 2, "name": "Scotch" } ] } ] How can I achieve that output? -
unbound method save() must be called with MyModel instance as first argument
I'm using setattr() to set attributes of a new object of a Django model. obj = apps.get_model(app_label="theme", model_name="MyModel") setattr(obj,"myCol",100) obj.save() I got this error: TypeError: unbound method save() must be called with DataPopulationTracts2016 instance as first argument (got nothing instead). I want to save the new instance of MyModel to the model, using get_model() and setattr() to make a new instance of the model and set its attributes. How do I make get_model() and setattr() work with save()? -
Running the Django REST framework example with Django 2.0
I'm trying to adapt the example shown on http://www.django-rest-framework.org/ to Django 2.0, but I'm running into an error. Firstly, I created a project using django-admin startproject rest_example. I've added 'rest_framework' to the INSTALLED_APPS list in settings.py and added the REST_FRAMEWORK variable: REST_FRAMEWORK = { # Use Django's standard `django.contrib.auth` permissions, # or allow read-only access for unauthenticated users. 'DEFAULT_PERMISSION_CLASSES': [ 'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly' ] } Here is my adapted urls.py: from django.contrib import admin from django.urls import path, include from django.contrib.auth.models import User from rest_framework import routers, serializers, viewsets class UserSerializer(serializers.HyperlinkedModelSerializer): class Meta: model = User fields = ('url', 'username', 'email', 'is_staff') class UserViewSet(viewsets.ModelViewSet): queryset = User.objects.all() serializer_class = UserSerializer router = routers.DefaultRouter() router.register(r'users', UserViewSet) urlpatterns = [ path('admin/', admin.site.urls), path('api-auth/', include('rest_framework.urls')) ] The problem is that when I python manage.py runserver and navigate to localhost:8000, I get a 404: Similarly, if I navigate to localhost:8000/api-auth/, I get Why is this not working?