Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
Add second non null condition to Django FilterSet
How do you add a non-null constraint to a second field on a drf_filters.FilterSet? In the case below, I would like to impose a second constraint that the model field called "obsolete" is not None. class MyFilterSet(drf_filters.FilterSet): uploaded = drf_filters.IsoDateTimeFilter( field_name='uploaded_at', lookup_expr='gt', required=True ) -
Django EmailMessage return error in django_rq task
I am trying to make a simple mail sending service with django. Without the use of the queue everything works fine, but as soon as I add the use of django_rq an error occurs at the time of executing msg.send() class SendEmailSerializer(serializers.Serializer): email_to = serializers.ListField(write_only=True) subject = serializers.CharField(write_only=True) template_name = serializers.CharField(write_only=True) template_data = serializers.DictField(write_only=True) def create(self, validated_data): send_email_wrapper( emails_to=validated_data.get("email_to"), subject=validated_data.get("subject"), template_name=validated_data.get("template_name"), template_data=validated_data.get("template_data") ) return {} import os, django_rq from sizze_email.settings import BASE_DIR from django.conf import settings from django.template.loader import render_to_string from django.core.mail import get_connection, EmailMessage FROM_EMAIL = getattr(settings, 'EMAIL_FROM') def find_template(template_name): for root, dirs, files in os.walk(os.path.join(BASE_DIR, "templates")): if template_name in files: result = os.path.join(root, template_name) return result def send_emails(emails_to, subject, template_name, template_data): template = find_template(template_name=template_name) message = render_to_string(template, template_data) connection = get_connection() step = 100 for index in range(0, len(emails_to), step): msg = EmailMessage( subject=subject, body=message, from_email=FROM_EMAIL, bcc=emails_to[index:index+step], connection=connection ) msg.content_subtype = "html" msg.send() def send_email_wrapper(emails_to, subject, template_name, template_data): django_rq.enqueue(func=send_emails, emails_to=emails_to, subject=subject, template_name=template_name, template_data=template_data) I use amazon ses to send mail, django-rq performs other tasks, and if I remove sending mail from the task, then everything will work fine. What could be the problem? -
Filter with just an input field for an id
Django 4.1 In my admin site I often use raw_id_fields. But in this case it is strange that filter uses just lists of instances. I would prefer to have a filter with an input field for an id as the number of objects being filtered is immense. Is it possible to have such a filter? Maybe there is a ready made third party application? -
How to change URL for all already uploaded files in filefield after changing upload_to
What happened I changed the server for my Django application .. and I have filefield that was uploaded already and the field was like below: image = models.FileField(upload_to="uploads", verbose_name=_( "Team Strips"), help_text=_("A Strip to be used later by users")) But I the new server am forced to use a different path so I had to change it to be like image = models.FileField(upload_to="ldawri_django/uploads/uploads", verbose_name=_( "Team Strips"), help_text=_("A Strip to be used later by users")) Settings.py MEDIA_ROOT = '/home/wateopjw/l-dawri.com/ldawri_django/uploads/' MEDIA_URL = "ldawri_django/uploads/" The Problem After changing the server and upload_to parameter all images are not showing now inside the Admin panel .. but it is shown when I click open image in new tab. What I've tried Tried to re-upload one of the files and it worked like charm .. so that will force me to reupload all files .. that is kinda impossible because there are hundreds of images . What I need A function or method to help me simulate some kind of reuploading for all images so the link inside the admin site is fixed -
Python string function to make 10 character alphanumeric id
I am working with python. I need to generate string of 10 count, where I have two known value of unknown length, so after adding these two numbers the remaining place will be filled by zero between these two known strings. For example: "abcd" + "1234" should give output abcd001234. "xyz" + "12" should give output xyz0000012. Please help. Thanks -
Django: Fix order issue with list of objects
I have a function that gets queryset results from the database and does some manipulations. When I get the results of that list, somehow the order is changed. And exactly this is the function that makes the order change: schedules = list(set(schedule_list) - set(excluded_schedules)) So I will explain exactly: I want to display the availability of a professional for booking an appointment. This professional has a list of available slots. When the visitor loads the professional profile page, Django makes a query to get all time slots of the professional, and then gets all the existing appointments, then proceeds to remove the booked schedules from the total schedules, to display the rest (the available schedules). So far so good? So, the code is the following (edited for sensitive information): def get_home_schedules(date, professional): day = get_day_by_date(date) try: schedules = Schedule.objects.filter(professional=professional, day=day, stype="Home").order_by('timefrom') excluded_schedules = [] schedule_list = [] for s in schedules: new_appointments = s.appointments.filter(schedule=s, date=date, status='New') confirmed_appointments = s.appointments.filter(schedule=s, date=date, status='Confirmed') appointments = chain(new_appointments,confirmed_appointments) schedule_list.append(s) if appointments: for a in appointments: excluded_schedules.append(a.schedule) schedules = list(set(schedule_list) - set(excluded_schedules)) return schedules except: return None The schedule model is: class Schedule(models.Model): professional = models.ForeignKey(d, on_delete=models.CASCADE) timefrom = models.CharField(max_length=5, choices=HOURTIME, default="00:00") timeto = models.CharField(max_length=5, … -
How to check which message in Django
I am working on adding date functionality in my django applicaiton, and I'm checking if the date being added is not less than the current date if TaskList.objects.filter(date)< date.today(): messages.error(request,"Date not valid") Then in the jinja template I added condition in jinja to check which type of message and showing the error {% if messages %} {% for message in messages %} {% if message.level == DEFAULT_MESSAGE_LEVELS_ERROR %} <strong>{{message}}</strong> {% endif %} {% endif %} When running the application and adding the date I get the error arg, value = filter_expr TypeError: cannot unpack non-iterable type object Is this not the way to check for an error and show it in the template? -
Django property globally
I need to do calculations with other models, I have properties like that @property def SON_Gesamt_Summe_1(self): return self.SON_Sprache_1 + self.SON_Lernen_1 + self.SON_Erziehung_1 + self.SON_Sehen_1 + self.SON_Hören_und_Kommunikation_1 + self.SON_geistige_Entwicklung_1 + self.SON_körperliche_und_motorische_Entwicklung_1 @property def SON_Gesamt_Summe_2(self): return self.SON_Sprache_2 + self.SON_Lernen_2 + self.SON_Erziehung_2 + self.SON_Sehen_1 + self.SON_Hören_und_Kommunikation_2 + self.SON_geistige_Entwicklung_2 + self.SON_körperliche_und_motorische_Entwicklung_2 @property def SON_Gesamt_Summe_3(self): return self.SON_Sprache_3 + self.SON_Lernen_3 + self.SON_Erziehung_3 + self.SON_Sehen_3 + self.SON_Hören_und_Kommunikation_3 + self.SON_geistige_Entwicklung_3 + self.SON_körperliche_und_motorische_Entwicklung_3 @property def SON_Gesamt_Summe_4(self): return self.SON_Sprache_4 + self.SON_Lernen_4 + self.SON_Erziehung_4 + self.SON_Sehen_4 + self.SON_Hören_und_Kommunikation_4 + self.SON_geistige_Entwicklung_4 + self.SON_körperliche_und_motorische_Entwicklung_4 @property def SON_Gesamt_Gesamt(self): return self.SON_Gesamt_Summe_1 + self.SON_Gesamt_Summe_2 + self.SON_Gesamt_Summe_3 + self.SON_Gesamt_Summe_4 Gesamt mean sum, and those sums I need to calculate with other entries from other models. I dont know how to use the properties outside of one model, is there even a way ? -
How to insert multiple rows of data from dynamically generated rows into a database using Python Django
I have a Javascript function (addItem) that allows a user to add any number of dynamically generated rows of data and fill in the necessary fields required. See code below <div class="modal-body"> <table class="table order-list table-striped" id="myTable"> <thead> <tr> <th>Item</th> <th>Quantity</th> <th>Price</th> <th>Total</th> </tr> </thead> <tbody id="addItems"> </tbody> </table> <table> <tbody> <tr> <td colspan="5" style="text-align: left;"> <button onclick="addItem();" class="btn btn-sm btn-success" id="sspusd1" value="Add Row"><i class="fa fa-plus"></i>Add Row</button> </td> <td colspan="5" style="text-align: left;"> </td> </tr> </tbody> </table> </div> function addItem() { renumber++; var html = "<tr>"; html += "<td><select class='form-control'>{% for stock in stocks %}<option class='dropdown-item' value='{{stock.inventoryPart}}'>{{stock.inventoryPart}}</option>{% endfor %}</select></td>"; html += "<td><input type='number' class='form-control' onblur='lineTotal(this);' value='0' name='quantity[]'/></td>"; html += "<td><input type='text' class='form-control' onblur='lineTotal(this);' value='0' name='price[]'/></td>"; html += "<td><input type='text' id='lineTotal' class='form-control' value='0' disabled name='total[]' /></td>"; html += "</tr>"; document.getElementById("addItems").insertRow().innerHTML = html; }; However, One is able to insert any number of rows they want and insert the necessary data into the fields available. The problem is that I am unable to capture and store the dynamic information entered into these dynamic rows since Django is unaware of how many rows a user has created. The aim is to be able to store the data from the created dynamic rows inserted by … -
Django + React axios POST cant access Json properties
I created two abjects that need to be treated separated in the backend, and sent it to backend with: const order = { order_id: 1, customer: { name: "Jonas Illver" age: 18 } } const car = { model: 'XHL' brand: 'Toyota' } const postData = { order: order, car: car } const res = await axios.post("orders/shipping/create", JSON.stringify(postData)); console.log(res); And here I return the response: views.py @api_view(['POST']) @permission_classes([IsAuthenticated]) def shipping_create_order(request): if request.method == 'POST': return JsonResponse(request.POST) Here's what the console.log prints: res.data // {"order:"{"order_id": 1, "customer": {"name": "Jonas Illver", "age": 18}}, "car": **car object content**} The problem is that if I try to access those data in my django view, I always got a 500 error I tried accessing it via: order = request.POST['order'] # and also data = json.loads(request.POST) order = data['order'] # also order = request.POST.get('order') None os the above approaches worked, the only one that doesn't occurs an 500 error is the last one, using the POST.get, but as soon as I add the if not order: return HttpResponse("No order") line, it always return "No order" How can I access specific info from the request.POST? Am I doing something wrong with the axios request? -
ValueError at/message/new/phil_ghil Cannot assign"<SimpleLazyObject:<django.contrib.auth.models.AnonymousUser: Message.user" must be a "User"instance
Hi I am getting this error over and over again when I press the link which should leed to 'conversation' project.owner.user which starts a new conversation between 2 users. Thanks for your help! Here is my code: directs/models.py class Message(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE, related_name="user") sender = models.ForeignKey(User, on_delete=models.CASCADE, related_name="from_user") reciepient = models.ForeignKey(User, on_delete=models.CASCADE, related_name="to_user") body = models.TextField(null=True) date = models.DateTimeField(auto_now_add=True) is_read = models.BooleanField(default=False) def sender_message(from_user, to_user, body): sender_message = Message( user=from_user, sender = from_user, reciepient = to_user, body = body, is_read = True ) sender_message.save() reciepient_message = Message( user=to_user, sender = from_user, reciepient = from_user, body = body, is_read = True ) reciepient_message.save() return sender_message def get_message(user): users = [] messages = Message.objects.filter(user=user).values('reciepient').annotate(last=Max('date')).order_by('-last') for message in messages: users.append({ 'user': User.objects.get(pk=message['reciepient']), 'last': message['last'], 'unread': Message.objects.filter(user=user, reciepient__pk=message['reciepient'], is_read=False).count() }) return users directs/views.py def inbox(request): user = request.user messages = Message.get_message(user=request.user) active_direct = None directs = None profile = get_object_or_404(Profile, user=user) if messages: message = messages[0] active_direct = message['user'].username directs = Message.objects.filter(user=request.user, reciepient=message['user']) directs.update(is_read=True) for message in messages: if message['user'].username == active_direct: message['unread'] = 0 context = { 'directs':directs, 'messages': messages, 'active_direct': active_direct, 'profile': profile, } return render(request, 'directs/direct.html', context) def NewConversation(request, username): from_user = request.user body = '' try: to_user = … -
Django Testing for File Size Limit
Our app has a limit on the size of the file that can be uploaded(<15MB). Is there a way i can create a dummy file of this size to test this? from django.core.files.uploadedfile import InMemoryUploadedFile import io f = io.StringIO("some initial text data") f.seek(1024 * 1024 * 1024) token_file=InMemoryUploadedFile(file=f , field_name=None, name="file.txt", content_type="text/plain", size=15729641, charset="utf8") print(token_file.size) response = self.client.post(HOME_URL, {'entity_level': 1, 'data_type': 1, 'team': GROUP_ID, 'upload_file': token_file}) # data=form_data, format='multipart') Inside clean method of the Form Class : def clean_upload_file(self): uploaded_files = self.files.getlist("upload_file") print(f"uploaded_files : {uploaded_files}") total_upload_size = sum([file.size for file in uploaded_files]) / (1024 * 1024) print(f"total_uploaded_size{total_upload_size}") if total_upload_size > MAX_UPLOADED_SIZE: raise forms.ValidationError(f"Total upload size is greater than {MAX_UPLOADED_SIZE} MB") Output: self.files.getlist('upload_file'): [<InMemoryUploadedFile: file.txt (text/plain)>] uploaded_files : [<InMemoryUploadedFile: file.txt (text/plain)>] total_uploaded_size0.0 FILE SIZE ALWAYS COMES AS ZERO WITH THIS APPROACH IS THERE A WAY TO MOCK THE FILE SIZE? -
Specify Factory db column names with FactoryBoy in a Django Test?
I've got a number of unmanaged models that I'm trying to develop some factories for so I can get some tests put together. The issue is that on a couple of them, they have db_column names and that is throwing an error for me in the factory. My models look like this: class Identity(models.Model): id = models.IntegerField(db_column="identityID", primary_key=True) person_id = models.IntegerField(db_column="personID") birth_date = models.DateField(db_column="birthdate") gender = models.CharField(db_column="gender", max_length=1) class Meta(object): # This is 'True' when testing so it's treated like a normal model managed = getattr(settings, "UNDER_TEST", False) db_table = "identity" class Person(models.Model): id = models.IntegerField(db_column="personID", primary_key=True) identity = models.ForeignKey( Identity, db_column="currentIdentityID", on_delete=models.PROTECT ) ticket_number = models.IntegerField(db_column="ticketNumber") class Meta(object): # This is 'True' when testing so it's treated like a normal model managed = getattr(settings, "UNDER_TEST", False) db_table = "person" class YearTerm(models.Model): active = models.BooleanField(default=False) name = models.CharField(max_length=50) created_by = models.ForeignKey( Person, on_delete=models.PROTECT ) class Meta: # This is 'True' when testing so it's treated like a normal model managed = getattr(settings, "UNDER_TEST", False) db_table = "[ALTS].[yearterm]" My factories look like this: class IdentityFactory(factory.django.DjangoModelFactory): class Meta: model = Identity @classmethod def _setup_next_sequence(cls): try: return Identity.objects.latest("id").id + 1 except Identity.DoesNotExist: return 1 id = factory.Sequence(lambda n: n) person_id = factory.Sequence(lambda n: … -
How to append a list in a dict from a JSONFeild in django
I want to use get_or_create() to search for an object. If it doesn't exist, it gets created. If it does exist, I want to update its metadata which is stored as a JSONFeild. obj, created = Customer.objects.get_or_create( first_name="John", last_name="Doe", defaults={ 'metadata':{ "customer_created": "2022_09_26", "adress_list": ["123 Street"], }, ) Which is correct? if not created: obj.metadata["address_list"].append(["123 Street"]) or if not created: addresses = obj.medata["address_list"] addresses.append(["123 Street"]) obj.metadata["address_list"] = addresses obj.save() Is there a better way to do this? I am not allowed to change the Customer class but I can change how I structure the metadata dict. -
want to return percentage in Django Rest Framework
I wanted to return the percentage of every poll options_data in response. I'm Expecting output Like in below. { "response": true, "return_code": "remove_vote_success", "result": { "id": 9, "user_id": 2, "question": "what would you like to see more of on our channel?", "created_on": "2022-09-06T05:52:39", "active": true, "options_data": [ { "id": 25, "poll_id": 9, "option_text": "Video editing tutorials", "percentage_count": 50.0 }, { "id": 26, "poll_id": 9, "option_text": "Clipchamp product updates", "percentage_count": 10.0 }, { "id": 27, "poll_id": 9, "option_text": "Social media growth tips" "percentage_count": 40.0 }, { "id": 28, "poll_id": 9, "option_text": "Clipchamp tips and tricks", "percentage_count": 0.0 } ] }, "message": "Vote get successfully." } this is my models.py class Polls(models.Model): user = models.ForeignKey(User, related_name="polls_data", on_delete=models.CASCADE) question = models.TextField(max_length=250, blank=False, null=False) created_on = models.DateTimeField(default=timezone.now) active = models.BooleanField(default=True) class Options(models.Model): poll = models.ForeignKey(Polls, related_name="options_data", on_delete=models.CASCADE) option_text = models.CharField(max_length=255) class Vote(models.Model): user = models.ForeignKey(User, related_name="vote_data", on_delete=models.CASCADE) poll = models.ForeignKey(Polls, on_delete=models.CASCADE) option = models.ForeignKey(Options, on_delete=models.CASCADE) this is my serializer.py class OptionsSerializer(serializers.ModelSerializer): class Meta: model = Options fields = ('id', 'poll_id', 'option_text') class PollsSerializer(serializers.ModelSerializer): options_data = OptionsSerializer(many=True, read_only=True) class Meta: model = Polls fields = ('id','user_id', 'question', 'created_on', 'active', 'options_data') -
How do you drop a specific migration that has no use currently and cause some errors when running tests?
I have a custom migration that is used to create a model object in the DB as a follow-up change, It adds a new option to the DB that was added later after the initial options list was created. I did that for the sake of automation and to avoid adding it manually. Now, a problem arises when running tests, all migrations run and therefore the first migration that creates the updated options list is applied, then that later custom migration is being applied and tries to create and it causes errors. So, my question is how to drop that migration. it was used for production DB to keep up but now it has no use for freshly DBs and causes errors Thank you for your answers and help -
Access data without token Django simple_jwt lib
I am using django simple_jwt library with DRF for a React project. Everything is working well except I cannot access any data (even simple GET requests) if no access token is provided. I didn't find a way to do it in the docs , is there some kind of decorator, setting to allow simple requests without an access token? Many thanks -
Filter by a virtual name in the admin site
Django4.1 class Exercise(NameMixin, UrlMixin, PriorityMixin, CommentMixin): unit = models.ForeignKey('vocabulary_units.Unit', on_delete=models.CASCADE, null=True, ) class Phrase(models.Model): exercise = models.ForeignKey('vocabulary_exercises.Exercise', on_delete=models.CASCADE, null=True, blank=False) @property def unit(self): result = self.exercise.unit return result A phase belongs to an exercise, excercise belongs to a unit. The problem is that in the admin site I'd like to organise for phrases a filter by unit. Is it possible? -
Add styling to form.as_div in Django
I am rendering a model form in Django using {{ form.as_div }} It is rendering as expected as I want each field wrapped in a div. I would now like to add a class to this auto generated div. adding widgets in the forms.py file only adds attribute to the input field itself and not the div around the field. Can someone point me in the right direction to add attributes to the div instead of the input field? Thank you -
how to use pillow module in pyscript to open screenshot with the help of html onclick button?
<button id="button" type = "button" class="btn btn-primary" pys-onClick="run_python"> NEXT </button> <py-script> from PIL import Image op = Element("output") def run_python(*args,**kwargs): image = Image.open("home/saikumar/Desktop/screenshot/selenium1.jpg"/) image.show() </py-script> i am trying to open the screenshot image which is present in my local directory with the help PIL module by clicking button but i am unable open and getting error like file not found and i have to open the screenshot by clicking NEXT button. please help through this. Error case: Uncaught PythonError: Traceback (most recent call last): File "<exec>", line 4, in run_python File "/lib/python3.10/site-packages/PIL/Image.py", line 3068, in open fp = builtins.open(filename, "rb") FileNotFoundError: [Errno 44] No such file or directory: 'home/saikumar/Desktop/screenshot/selenium1.jpg' at new_error (pyodide.asm.js:14:238191) at pyodide.asm.wasm:0xedbcb at pyodide.asm.wasm:0xedccc at Module._pythonexc2js (pyodide.asm.js:14:932707) at Module.callPyObjectKwargs (pyproxy.gen.ts:374:12) at Module.callPyObject (pyproxy.gen.ts:384:17) at PyProxyClass.apply (pyproxy.gen.ts:1145:19) at Object.apply (pyproxy.gen.ts:1022:18) new_error @ pyodide.asm.js:14 $wrap_exception @ pyodide.asm.wasm:0xedbcb $pythonexc2js @ pyodide.asm.wasm:0xedccc Module._pythonexc2js @ pyodide.asm.js:14 Module.callPyObjectKwargs @ pyproxy.gen.ts:374 Module.callPyObject @ pyproxy.gen.ts:384 apply @ pyproxy.gen.ts:1145 apply @ pyproxy.gen.ts:1022 -
How to access other data of foreign key and call them on frontend in django
I have to models Customers and Purchase_order. I am taking customer as a foreign key in purchase invoice and fetching data.. My data is like this: {'id': 5, 'purchase_number': 'TES-PO-1', 'purchase_date': datetime.date(2022, 9, 1), 'customer_id_id': 1, 'special_instructions': '', 'total': '70', 'discount': 2.578125, 'round_off': '77.5', 'grand_total': '78', 'user_id': 1, 'remarks': '', 'company_id': 1} {'id': 6, 'purchase_number': 'TES-PO-2', 'purchase_date': datetime.date(2022, 9, 6), 'customer_id_id': 2, 'special_instructions': '', 'total': '24', 'discount': 0.75, 'round_off': '28.5', 'grand_total': '29', 'user_id': 1, 'remarks': '', 'company_id': 1} Action here I am getting customer id as 1,2,3 its pk value but I wish to call its customer_company there.. how can I access them by its id on frontend? want to show name instead of ID -
Highlight the selected part in the table of contents (htmx)
I use django-htmx to create the table of contents. It works fine, but I can't select the selected part of the table of contents. I understand that it can be done with a url, but I'm shown a different address where the htmx itself is located. And the request.htmx.current_url command outputs a link without the parts in the table of contents. For example, the article is located at example.com/post/harry_potter , if I click on a certain part of the table of contents, the address will already be example.com/post/harry_potter#II. The request.htmx.current_url command gives a link to example.com/post/harry_potter , so I can't check in any way. this is the latest attempt, but it doesn't work <div class="offcanvas-body"> <nav id="navbar-example3" class="h-100 flex-column align-items-stretch pe-4 border-end"> <nav class="nav nav-pills flex-column"> <ul class="list-unstyled fw-normal pb-2 small"> {% for new in table_content %} {% if request.htmx.current_url == new %} <li><a href="#{{new}}" class="bd-links-link d-inline-block rounded nav-link active">{{new}}</a></li> {% else %} <li><a href="#{{new}}" class="bd-links-link d-inline-block rounded nav-link">{{new}}</a></li> {% endif %} {% endfor %} </ul> </nav> </nav> </div> -
Get queryset of related one to one fields
I have 3 models: class BillingNumbering(models.Model): number = models.IntegerField() date = models.DateField(default=now) class Invoice(models.Model): number = models.OneToOneField(BillingNumbering, on_delete=models.PROTECT) created_at = models.DateTimeField(auto_now_add=True, null=True, blank=True) class DamageClaim(models.Model): number = models.OneToOneField(BillingNumbering, on_delete=models.PROTECT) created_at = models.DateTimeField(auto_now_add=True, null=True, blank=True) I want to query only those BillingNumbering objects that is connected to either Invoice or DamageClaim. So if I have <BillingNumbering: 1> - connected to invoice <BillingNumbering: 2> - connected to damage claim <BillingNumbering: 3> - connected to None where instance.invoice or instance.damageclaim will result to ObjectDoesNotExist Error. Then I only want to return <BillingNumbering: 1> and <BillingNumbering: 2> with BillingNumbering filter -
when i uses post.get_absolute_url in href i got this error. how fix this?
AttributeError at /blog/ Manager isn't accessible via Post instances Error during template rendering In template C:\Users\Mahdyar Eatemad\OneDrive\Projects\Gallery\templates\blog\post\list.html, error at line 33 Manager isn't accessible via Post instances error i used get_absolute_url to create slug for blog posts This is my models from django.db import models from django.contrib.auth.models import User from django.utils import timezone from django.urls import reverse # Create your models here. class PublishedManager(models.Manager): def get_queryset(self): return super(PublishedManager, self).get_queryset().filter(status='published') class Post(models.Model): STATUS_CHOICES = ( ('draft', 'چرک نویس'), ('published', 'منتشر شده'), ) title = models.CharField(max_length=100) slug = models.SlugField(max_length=100, unique_for_date='publish', allow_unicode=True) body = models.TextField() author = models.ForeignKey(User, on_delete=models.CASCADE, related_name='blog_posts') bolded_text = models.TextField(blank=True) picture = models.ImageField(upload_to='photos', blank=True) publish = models.DateTimeField(default=timezone.now) created = models.DateTimeField(auto_now_add=True) updated = models.DateTimeField(auto_now=True) status = models.CharField(max_length=10, choices=STATUS_CHOICES, default='draft') objects = models.Manager() published = PublishedManager() class Meta: ordering = ('-publish',) def get_absolute_url(self): return reverse('blog:post_detail', args=[self.published.year, self.published.month, self.published.day, self.slug]) def __str__(self): return self.title my views from django.shortcuts import render, get_object_or_404 from .models import Post # Create your views here. def post_list(request): posts = Post.published.all() return render(request, 'blog/post/list.html', {'posts': posts}) def post_detail(request, year, month, day, slug): post = get_object_or_404(Post, slug=slug, status='published', published__year=year, published__month=month, published__day=day) return render(request, 'blog/post/list.html', {'post': post}) my url from django.urls import path, register_converter from django.urls.converters import SlugConverter from . import … -
Django architecture for different clients/technologies using same models
My team and I are having a hard time defining the architecture for my backend environment using Django. To contextualize a little, we built an application similar to an App Store, for all our developments to be displayed, with the difference that it also launches the apps. To maintain all the information about this apps, we built this backend in Django that is basically a database accessed through an API from the App Store, and a Django Admin website to register the informations to be delivered in the API (the one Django automatically generates). The thing is, today, we have only one technology involved and therefore only one database and one Django Admin. But, other areas in our company want to use this architecture we built, with other apps and therefore other informations, not related to our environment. The question is, should we deploy several Djangos in different ports of our server? Or should we try to create a dependency in our models to a "Technology" related to it? (For this option it is important to note that our architecture is complex and highly nested). Or maybe should we use the multiple databases provided from Django? Has anyone had a …