Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
Create with id and get nested structure does not work in django
I have spent already a couple of days researching about this issue in similar questions and I am not able to get a solution. This should be something simple, I have a model: model.py class Item(models.Model): """Class to represent an item...""" label = models.TextField(null=True) name = models.TextField() category = models.ForeignKey( "Category", on_delete=models.SET_NULL, null=True, default=DEFAULT_CATEGORY_ID) class Category(models.Model): """Class to represent the category of an Item. Like plants, bikes...""" name = models.TextField() description = models.TextField(null=True) view.py class ItemViewset(viewsets.ModelViewSet): # pylint: disable=too-many-ancestors """API Endpoint to return the list of items""" queryset = Item.objects.all() serializer_class = ItemSerializer serializer.py class ItemSerializer(serializers.ModelSerializer): """Serializer for Item.""" category = CategorySerializer(read_only=True) class Meta: # pylint: disable=too-few-public-methods """Class to represent metadata of the object.""" model = Item fields = [ 'id', 'label', 'name', 'category'] read_only_fields = ['id'] # def to_representation(self, instance): # ret = super().to_representation(instance) # ret['category'] = CategorySerializer(instance.category).data # return ret def create(self, request): # Look up objects by arbitrary attributes. # You can check here if your students are participating # the classes and have taken the subjects they sign up for. category = get_object_or_404(Category(), id=request.data.get('category')) serializer = self.get_serializer(data=request.data) serializer.is_valid(raise_exception=True) serializer.save(category=category) headers = self.get_success_headers(serializer.data) return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers) If I have the line category = CategorySerializer(read_only=True) commented the … -
Django dumpdata doesn't work with emoji in CharField or TextField
I have a model: class BlogPost(models.Model): description = models.TextField() I created a model instance and assigned it a description with an emoji: >>> BlogPost.objects.create(description='🙂') I run py manage.py dumpdata > data.json and it returns this error: CommandError: Unable to serialize database: 'charmap' codec can't encode character '\U0001f642' in position 1: character maps to <undefined> Exception ignored in: <generator object cursor_iter at 0x0000022F87CCC890> Traceback (most recent call last): File "C:\Users\zackp\.virtualenvs\django_wagtail_emoji_test-aUFzZHWp\lib\site-packages\django\db\models\sql\compiler.py", line 1609, in cursor_iter cursor.close() sqlite3.ProgrammingError: Cannot operate on a closed database. If I just run python manage.py dumpdata, it returns the output (in the command line) as expected. I'm runnning latest version of Django and Python 3.9.2. How do you make it to where you can export from an sqlite3 database to a .json file without that weird error? -
django project takes to base url on refresh?
Below is my web app project in django code it runs fine but when I refresh my page it takes me to the base url rather it should keep me on same page where I reloaded it. I tried to figure it out for quite some time now but is something not clicking to me. TIA. it should not take me to base url because this makes it very hard to share page with others. url.py from django.conf.urls import url from . import views urlpatterns = [ url( r'^new$', view=views.new_ui, name='product.new.ui'), url( r'^new/api/.*', view=views.new_api, name='product.new.api'), url(r'^uploader$', view=views.product_uploader_ui, name='product.uploader.ui'), url( r'^uploader/api/.*', view=views.product_uploader_api, name='product.uploader.api'), ] view.py @user_passes_test(lambda u: u.is_superuser) def product_uploader_ui(request): client = boto3.client('s3') BUCKET = 'tt' FILE_TO_READ = 'index.html' content_object = client.get_object(Bucket=BUCKET, Key=FILE_TO_READ) file_content = content_object['Body'].read().decode('utf-8') return render(request, 'product_uploader_ui.html', { "html" : file_content }) @login_required @user_passes_test(lambda u: u.is_superuser) def new_ui(request): client = boto3.client('s3') BUCKET = 'tt' FILE_TO_READ = '2/index.html' content_object = client.get_object(Bucket=BUCKET, Key=FILE_TO_READ) file_content = content_object['Body'].read().decode('utf-8') return render(request, 'new_ui.html', { "html" : file_content }) @csrf_exempt @user_passes_test(lambda u: True if stage == "local" else u.is_superuser) def new_api(request): # helpers method = request.method route = request.path.replace('/admin/product/new/api', '') print('new_api_audit_log', request.user, method, route) # a whitelist of allowed apis for new_ui to use if method … -
How to set up torsocks with postgresql
Hi When I try to run my Python program The program runs well with torsocks But when the program needs to connect to the database (postgresql) Gives an error and can not How to configure the tor so that our program can find the database? I use the postgresql Photo of Error: It does not matter if my program is a Django or I use a sqlalchemy Cannot find database at all -
How to show UTC time in local timezone in Django view?
I use UTC in my Django app and I want to display the time for my local timezone; 'Europe/Stockholm'. I just can't get this simple thing to work so I must be doing something wrong. I just can't figure out what it is... This is what I have in my settings.py: TIME_ZONE = 'UTC' USE_I18N = True USE_L10N = True USE_TZ = True And this is how I get the date that is passed to my template: my_time = datetime.datetime.utcnow() And finally this is what i have in my template file: {% load tz ‰} {% timezone 'Europe/Stockholm' %}{{ my_time|time }}{% endtimezone %} But whatever timezone I use in {% timezone ... %} the date always read the same 20:31, and the local time should in fact be 22:31. Thankful for any help with this! -
Basic Django urls (home : name not defined)
I'm getting the error : File "E:\2- Formations\1-Programmation\3- PYTHON\1- DASH\1- Apprentissage\dashsite\dashsite\urls.py", line 23, in <module> path('',include(home.urls)), NameError: name 'home' is not defined When I try to runserver / migrate. I'm sucepting a wrong setting cause it should work : My folders organisation Settings.py code which should alowwed my to use the home. : from pathlib import Path from django import apps BASE_DIR = Path(__file__).resolve().parent.parent SECRET_KEY = DEBUG = True ALLOWED_HOSTS = [] INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'home.apps.HomeConfig', ] MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ] ROOT_URLCONF = 'dashsite.urls' TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ] WSGI_APPLICATION = 'dashsite.wsgi.application' # Database # https://docs.djangoproject.com/en/3.1/ref/settings/#databases DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': BASE_DIR / 'db.sqlite3', } } # Password validation # https://docs.djangoproject.com/en/3.1/ref/settings/#auth-password-validators AUTH_PASSWORD_VALIDATORS = [ { 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', }, { 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', }, { 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', }, { 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', }, ] # Internationalization # https://docs.djangoproject.com/en/3.1/topics/i18n/ LANGUAGE_CODE = 'en-us' TIME_ZONE = 'UTC' USE_I18N = True USE_L10N = True USE_TZ = True # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/3.1/howto/static-files/ STATIC_URL = '/static/' Project : urls.py (dir dashsite): from … -
Cannot have a SlugRelatedField to a FileField in a DRF Serializer?
I have a Model w/ a foreign-key relationship to another Model w/ a FileField. I am unable to serialize the 1st model using a serializer w/ a SlugRelatedField to the file of the 2nd model. Here is some code: models.py: class Foo(models.Model): name = models.CharField(max_length=100) bar = models.ForeignKey(Bar, blank=True, null=True) class Bar(models.Model): file = models.FileField(blank=True, null=True, upload_to="some_path") serializers.py: class FooSerializer(serializers.ModelSerializer): class Meta: model = Foo fields = ("name", "bar") bar = serializers.SlugRelatedField(read_only=True, slug_field="file") But when I try to serialize an instance of Foo I get the following sort of error: UnicodeDecodeError at /api/foo/1/ 'utf-8' codec can't decode byte 0xb5 in position 1: invalid start byte Any suggestions? -
Django: Move columns, fields from Child Model to Parent Model?
I currently have a Parent model and a few Child model classes that descend from it. Something like this: class ParentClass(django.db.models.Model) , class ChildClassA(ParentClass) , class ChildClassB(ParentClass) There are several fields that only exist currently on one of the child classes that I would like to exist on all of the child classes. Let's call those fields FieldX, FieldY, and FieldZ. One way I could handle this is by copying FieldX, FieldY, FieldZ to all of the child models. Which isn't a bad solution but is kind of annoying. Is there a good way to move the column/field to the ParentClass? Originally I was going to do it with three migration files: the first migration file would add the columns to the parent class, the second migration file would copy data over, the third would remove the columns from ChildClassA. However, that didn't work. Because Django is smart enough to detect that I was trying to add the same field name to the Parent Class that already exists on one of the Child classes. It raised a n exception for that: django.core.exceptions.FieldError: Local field 'FieldX' in class 'ChildClassA' clashes with field of the same name from base class 'ParentClass'. Instead … -
Django rest_framework returning Server error 500 on UnsupportedMediaType
New to Django REST. My API is supposed to work with JSON content-type. However, when I send a POST body of Content-type text, the API raises UnsupportedMediaType exception as expected, But the response contains 500 Server error instead of 415 Unsupported Media type. -
Django Inline Formset Field Required/Not Required Setting in View
How do I change a field of a inline formset from not required to required in the view? For example, for a form, it would be form.fields['field name'].required = True How do I replicate this setting for an inline formset? I tried formset.fields['field name'].required = True, but was given the error, 'formset' object has no attribute fields. -
How to use django selenium testing in GitHub actions?
I am creating a Django project and I have created a test case that inherits from django.test.LiveSeverTestCase (so it uses selenium): from django.test import LiveServerTestCase from selenium.webdriver.chrome.webdriver import WebDriver class FrontEndTestCase(LiveServerTestCase): @classmethod def setUpClass(cls): super().setUpClass() cls.selenium = WebDriver() cls.selenium.implicitly_wait(10) # Get the URL cls.selenium.get('http://127.0.0.1:8000/vota/') # Add CSRFToken cls.selenium.add_cookie({'name': 'csrftoken', 'value': '1cY4Yb3SljOqj9tUndW1YlIokNOD8tNc2MSU5iKNvsZW8co9WoOOCVGd5RFzxD8P'}) # Define page sections cls.choose_comps = cls.selenium.find_element_by_id('choose-comps') cls.poll = cls.selenium.find_element_by_id('poll-container') cls.end_table = cls.selenium.find_element_by_id('table-container') cls.navs = cls.selenium.find_elements_by_class_name('nav-link') @classmethod def tearDownClass(cls): cls.selenium.quit() super().tearDownClass() The tests are irrelevant to my problem, so I won't include them for the sake of longness. As you probably realize, for this test case to work, I have to start the server with python manage.py runserver. The problem here is that I want to use all these tests in GitHub Actions, and so far, I have, until creating this testcase. Since I have to start the server first, I made a new step in the job. But this step never ends since the server will always be listening for further requests. I also have to install somehow a chromedriver, a step I don't know how to do. Here is my ci.yml file: name: Testing on: push jobs: test_vote: runs-on: ubuntu-latest services: postgres: image: postgres:10.8 env: POSTGRES_USER: postgres … -
cant save ManyToMany field in django?
i have ManytoMany Field but everytime i save data in forms all data saved except this field (ManyToManyField) this is my views.py @login_required() def post_update(request,id): post = get_object_or_404(Post,id=id) form = PostForm(request.POST or None,request.FILES or None,instance=post ) if request.method == 'POST': if form.is_valid(): instance =form.save(commit=False) instance.user = request.user instance.save() form.save_m2m() messages.success(request, "You successfully updated the post") return redirect(reverse("home:post",kwargs={"id":post.id})) context={"form":form} return render(request,"post_update.html",context) and this is the Error: Internal Server Error: /post/update/4/ Traceback (most recent call last): File "C:\Users\abdal\AppData\Local\Programs\Python\Python38-32\lib\site-packages\django\core\handlers\exception.py", line 47, in inner response = get_response(request) File "C:\Users\abdal\AppData\Local\Programs\Python\Python38-32\lib\site-packages\django\core\handlers\base.py", line 179, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "C:\Users\abdal\AppData\Local\Programs\Python\Python38-32\lib\site-packages\django\contrib\auth\decorators.py", line 21, in _wrapped_view return view_func(request, *args, **kwargs) File "G:\Web Development\Back End\JustDjango\Build any blog with Django\Blog\blog\BlogApp\views.py", line 111, in post_update form.save_m2m() File "C:\Users\abdal\AppData\Local\Programs\Python\Python38-32\lib\site-packages\django\forms\models.py", line 443, in _save_m2m f.save_form_data(self.instance, cleaned_data[f.name]) File "C:\Users\abdal\AppData\Local\Programs\Python\Python38-32\lib\site-packages\taggit\managers.py", line 543, in save_form_data getattr(instance, self.name).set(*value) TypeError: set() argument after * must be an iterable, not NoneType -
Django - create ForeignKey reference based on existing value in referenced model
models.py: class Thread(models.Model): title = models.CharField(max_length=400) discussion = models.URLField(max_length=250, unique=True, blank=True, null=True) ... class Comment(models.Model): thread = models.ForeignKey('Thread', null=True, on_delete=models.SET_NULL) thread_name = models.CharField(max_length=100) thread_link = models.URLField(max_length=250) ... addcomments.py: .... clean_comments = list(zip(thread_name, thread_link)) for thread_name, thread_link in clean_comments: # if thread_link exists in Thread model Comment.object.create( thread=???, thread_name=thread_name, thread_link=thread_link) # if not exists Comment.object.create( thread=Null, thread_name=thread_name, thread_link=thread_link) I want to create Comment object with ForeignKey referencing Thread object if the value of thread_link (Comment model) exists in Thread model (thread_link == discussion). If thread_link != discussion i want ForeignKey to be set to None. I'm thinking about for thread_name, thread_link in clean_comments: filtered = Thread.objects.filter(discussion=thread_link) if filtered: Comment.object.create( thread=???, thread_name=thread_name, thread_link=thread_link) else: Comment.object.create( thread=None, thread_name=thread_name, thread_link=thread_link) -
My views.py is returning null from django admin object
I would really appreciate some help on this because I'm completely stuck. I've started up a simple django app (trying to make an instagram clone). However, when I try to display the post objects (which I created in the django admin page) nothing is displayed in index.html, so I tried printing out the objects in the views.py and it's returning to me an empty query set. I don't quite understand what I'm doing wrong and why I can't access the objects? When I print out the username I am able to get that, but then nothing for both post and stream objects. Please I'm so stuck any advice would be appreciated. views.py from django.shortcuts import render from django.contrib.auth.decorators import login_required from django.template import loader from django.http import HttpResponse # Create your views here. from post.models import post, stream @login_required # we are getting all of the string objects that are created for the user def index(request): user = request.user print(user) posts = stream.objects.filter(user=user) print(posts) group_ids = [] #then looping through and getting post id to a list for posted in posts: group_ids.append(posted.post_id) print(group_ids) #then filtering them so that you can display it in the index #selecting a specific post by … -
why am I receiving this error == Reverse for 'download_done' not found. 'download_done' is not a valid view function or pattern name
I'm trying to create a youtube downloader but when I'm trying to download it gives this error "Reverse for 'download_done' not found. 'download_done' is not a valid view function or pattern name." I have compared the app name and its corresponding, I have also checked the HTML file it looks okay please help me...its urgent views.py from django.shortcuts import render from pytube import YouTube import os # Create your views here. def youtubedownloader(request): return render(request, 'youtube_downloader.html') def download(request): global url url = request.GET.get('url') yt = YouTube(url) video = [] video = yt.streams.filter(progressive=True).all() embed_link = url.replace("watch?v=", "embed/") Title = yt.title context = {'video': video, 'embed': embed_link, 'title': Title} return render(request, 'download.html', context) def download_done(request, resolution): global url homedir = os.path.expanduser("~") dirs = homedir + '/Downloads' if request.method == "POST": YouTube(url).streams.get_by_resolution(resolution).download(dirs) return render(request, 'download_done.html') else: return render(request, 'errorrrr.html') urls.py from django.contrib import admin from django.urls import path from .views import youtubedownloader, download, download_done app_name = 'yt_downloader' urlpatterns = [ path('youtube_downloader/', youtubedownloader, name='youtube downloader'), path('youtube_downloader/download/', download, name='download video'), path('download/<resolution>/', download_done, name='download done') ] download.html {% extends 'base.html' %} {% block content %} <div class="container"> <h1> Title : {{title}} </h1> <div class=" mt-5 embed-responsive embed-responsive-16by9"> <iframe class="embed-responsive-item" src={{embed}} allowfullscreen></iframe> </div> <table class="table"> <thead class="thead-light"> … -
Join with double key in Django
I got a question and problem with Django. How can I do this sql query in Django? SELECT * FROM `pot010` LEFT OUTER JOIN `pot042` ON (`pot010`.`ninp10` = `pot042`.`ninp42`and COSE42 = 20202021) Thanks so much. -
I am trying to create an app in Django where registered users can log in and access certain information from the main database
I am trying to create an app in Django where registered users can log in and access certain information from the main database, but I know how to make a filter in Django when the user logs in and on the welcome page show only the database items that I want to show to that user .. Do I have to create a model for each User separate from the login? I appreciate your help -
Is their a straightforward way to limit the number of updates of a certain field in a django model?
For example i use the extended user model called "profile" and in the profile i have many fields describing the using. what i want is that the user choose whether he is a business user or a regular customer on the web site. but once this field is updated it cannot be updated again, in which the field appears in the profile edit form but as non-editable field. What is the best way to do that? I thought of using an additional field in the database where i include an "update date" and if this field is not null then the user cannot update. but it seems to me too much coding for this small feature. Thanks in advance -
Django DetailView but get_object_or_404() instead of get_object()
I have Django Model that has a live boolean attribute. I want the View to get the Model by slug and only go to this page if it's live USING THE DetailView (not function based view, because I want to see how to do it. Model definition # myapp/models.py class MyModel(models.Model): name = models.CharField(max_length=255) live = models.BooleanField(default=True) slug = models.SlugField() def save(self, *args, **kwargs): self.slug = slugify(self.name) I hoped it would be done something like this: class ModelDetailView(DetailView): model = MyModel def get(self, request, *args, **kwargs): service = self.get_object_or_404(Service, live=True) # <- Main point of what I'm looking for help with return super().get(request, *args, *kwargs) Is there a way to filter this way? -
the google map is not showing the nearby results of carwashes?
Any guidance will be helpful! I have implemented some code in my apps in Django as map.html(code is below). The app is able to locate the user's location but it does not show the nearby results of carwashes? do I need to be more specific in the code or am I completely missing something? (the API key has already been inserted I just removed it to be safe) <!DOCTYPE html> <html> <head> <title>CarwashFinder</title> <meta name="viewport" content="initial-scale=1.0, user-scalable=no"> <meta charset="utf-8"> <style> /* Always set the map height explicitly to define the size of the div * element that contains the map. */ #map { height: 100%; background-color: grey; } /* Optional: Makes the sample page fill the window. */ html, body { height: 100%; margin: 0; padding: 0; } /* TODO: Step 4A1: Make a generic sidebar */ /* Styling for an info pane that slides out from the left. * Hidden by default. */ #panel { height: 100%; width: null; background-color: white; position: fixed; z-index: 1; overflow-x: hidden; transition: all .2s ease-out; } .open { width: 250px; } /* Styling for place details */ .hero { width: 100%; height: auto; max-height: 166px; display: block; } .place, p { font-family: 'open … -
Django ModelForm issue
I'm having an issue with Django form, Accounts/models.py class MyUser(AbstractBaseUser): email = models.EmailField( max_length=255, unique=True, verbose_name='email addres') name = models.CharField(max_length=255, verbose_name="name") date_joined = models.DateTimeField( verbose_name='date joined', auto_now_add=True) last_login = models.DateTimeField(verbose_name='last login', auto_now=True) phone_number = models.CharField(max_length=11, verbose_name="Phone Number") is_cliente = models.BooleanField(default=False) is_recebedor = models.BooleanField(default=False) is_colocador = models.BooleanField(default=False) is_dono = models.BooleanField(default=False) is_active = models.BooleanField(default=True) is_staff = models.BooleanField(default=False) is_admin = models.BooleanField(default=False) is_superuser = models.BooleanField(default=False) USERNAME_FIELD = 'email' REQUIRED_FIELDS = ['name'] objects = UserManager() class Meta(): verbose_name_plural = "Usuarios" def __str__(self): return self.email def has_perm(self, perm, obj=None): return True def has_module_perms(self, app_label): return True def get_short_name(self): full_name = self.name name_gap = full_name.find(" ") first_name = full_name[:name_gap] return first_name class Dono(models.Model): user = models.OneToOneField( MyUser, on_delete=models.CASCADE, primary_key=True) def __str__(self): return self.user.get_short_name() class Colocador(models.Model): user = models.OneToOneField( MyUser, on_delete=models.CASCADE, primary_key=True) work_for = models.ForeignKey(Dono, models.CASCADE, blank=True, null=True) def __str__(self): return self.user.get_short_name() class Meta(): verbose_name_plural = "Colocadores" class Recebedor(models.Model): user = models.OneToOneField( MyUser, on_delete=models.CASCADE, primary_key=True) work_for = models.ForeignKey(Dono, models.CASCADE, blank=True, null=True) def __str__(self): return self.user.get_short_name() class Meta(): verbose_name_plural = "Recebedores" A 'Dono' user is able to register sales and every sale is related to one 'Colocador' my Venda (Sale in portuguese) model: class Venda(models.Model): STATUS_CHOICES = { ('AV', 'A vencer'), ('PG', 'Pagou'), ('RM', 'Remarque'), ('SM', 'Sumiu'), } name … -
how to fix sql query in django
I'm not sure how to fix 'likesCounter' query. I want to count all likes from one article. Any help is appreciated. ' model: class Likes(models.Model): article = models.ForeignKey(Article, on_delete=models.CASCADE, related_name="like_article") user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='liker_user') view: def article_detail(request, pk): article = Article.objects.get(pk=pk) already_liked = Likes.objects.filter(article=article, user=request.user) likesCounter = Likes.objects.filter(article=article, user_id=request.user).count() if already_liked: liked = True else: liked = False return render(request, 'article/single-article.html', context={'article':article, 'liked': liked,'likesCounter':likesCounter,'already_liked':already_liked}) -
How to upload NamedTemporaryFile via FileField in Django
I have a NamedTemporaryFile which I wish to upload by updating my Django model. Below is how I am creating the NamedTemporaryFile. I am updating the file through csv.writer error_file = open(tempfile.NamedTemporaryFile().name, 'w+', newline='') I have a model like below: class Logs(models.Model): error_file = models.FileField(upload_to='errors/', blank=True, null=True, max_length=200) I am trying to upload the error_file to the errors directory. from django.core.files.base import File l = Logs.objects.get(pk=1) error_file.seek(0) # I seek the cursor to the starting position before saving l.error_file.save('error1.csv', File(self.error_file)) Below is the error I am getting: AttributeError: 'File' object has no attribute 'temporary_file_path' -
PUT request not working in Django Rest - VueJS app
I'm trying to make a blog useing VueJS and Django with the REST Api (Ajax via Axios). I can send a "PUT" request without errors in the console bur it is not effecting the database, is link the method is not called. I also have a problem with setting by default the already-uploaded image in the input type="file" field. The code: Vuejs <template> <h1>ARTICOLO</h1> <form @submit="onSubmit"> <input type="text" name="title" placeholder="Titolo" v-model="form.title"> <input type="text" name="desc" placeholder="Descrizione" v-model="form.desc"> <input type="text" name="category" v-model="form.category"> <input type="file" name="image" @change="EditImage"> <input type="text" name="author" v-model="form.author"> <input type="text" name="author" v-model="form.slug"> <textarea name="text" v-model="form.text"></textarea> <p>{{ form }}</p> <button type="submit" @click= "onSubmit">Edit</button> </form> </template> <script> import axios from 'axios'; import { getAPI } from '../api' export default { data () { return{ Postslug: this.$route.params.Postslug, form: { title:"", desc:"", text:"", category:"", date:"", author:"", image:"", slug:"", }, selectedFile: '' } }, methods: { EditImage(event){ this.selectedFile = event.target.files[0] console.log(event); }, // Form method onSubmit(event){ const fd = new FormData(); fd.append('image', this.EditImage, this.EditImage.name) event.preventDefault(); axios.put(`http://127.0.0.1:8000/blog/api/edit/${this.Postslug}`, this.form).then(response => { this.form.title = response.data.title this.form.desc = response.data.desc this.form.text = response.data.text this.form.image = this.fd this.form.category = response.data.category this.form.author = response.data.author this.form.slug = response.data.slug }) .catch(err => { console.log(err) }) }, }, created() { getAPI.get(`blog/api/edit/${this.Postslug}`) .then(response => { this.form.title … -
How to use a Formset with Django_Tables2
I love using django_tables2 but I've hit a bit of a snag. I have an edit page with a standard django form for updating a member's details. Within this form there is a table of addresses for the current member which I can render easily with django_tables2 using the following code. from tables.py class AddressTable(tables.Table): address1 = tables.Column(attrs={'th':{'class':'centered nodec'}, 'td':{'data-title':'Address 1'}}) address2 = tables.Column(attrs={'th':{'class':'centered nodec'}, 'td':{'data-title':'Address 2'}}) address3 = tables.Column(attrs={'th':{'class':'centered nodec'}, 'td':{'data-title':'Address 3'}}) address4 = tables.Column(attrs={'th':{'class':'centered nodec'}, 'td':{'data-title':'Address 4'}}) address5 = tables.Column(attrs={'th':{'class':'centered nodec'}, 'td':{'data-title':'Address 5'}}) postcode = tables.Column(attrs={'th':{'class':'centered nodec'}, 'td':{'data-title':'Postcode'}}) class Meta: model = Address fields = ('address1','address2','address3','address4','address5','postcode',) template_name = 'django_tables2/bootstrap.html' attrs={'id':'addresslist', 'class': 'table table-noborder no-table'} and I pass the data from my view like like this from views.py f = AddressListFilter(request.GET, queryset=Address.objects.all(),request=request) addresstable = AddressTable(f.qs) However, the page needs to allow the user to be able to dynamically add as many extra address records as they wish (which I can use javascript to do this) but I then need to pass the entire table, complete with additional address records, back to django for processing when the user hits the submit button within the form. From what I can gather I should be using a django formset to achieve this …