Django community: RSS
This page, updated regularly, aggregates Django Q&A from the Django community.
-
Django custom authentication middleware error
Following this exact example from documentation and getting following error. I have required file in place as needed. https://docs.djangoproject.com/en/4.1/topics/auth/customizing/#writing-an-authentication-backend 61, in load_middleware mw_instance = middleware(adapted_handler) TypeError: SettingsBackend() takes no arguments settings.py has following. MIDDLEWARE = [ ... 'myweb.middleware.example_authentication.SettingsBackend' ] -
Streamlit app inside django project at the same time
i'm kind of new to Heroku, but got a question in relation to dynos. My situation is as follows. I'm running on main application in django that runs the following dyno command "web gunicorn DJANGO_WEBPAGE.wsgi --log-file - ", and inside my main project there is a streamlit app that runs the following command "streamlit run geo_dashboard.py", but it seems i can't run both commands on the same dyno. 1.- Is there a way to accomplish this? 2.- Do they need to be on separate apps? 3.- In case of limitations do to being a free user, does the hobby plan covers it? I've tried running my procfile this way web: gunicorn DJANGO_WEBPAGE.wsgi --log-file - && web: sh setup.sh && streamlit run geo_dashboard.py Even though i get no errors, only the streamlit app appears leaving the django app shutdown. -
django bulletin board image total capacity limit or image total number limit
I'm making a bulletin board with django. I'm using the Summer Note Editor and I'm going to use aws3 as an image repository. If you post too many images for each post, I think there will be a lot of s3 charges Is there a way to limit the total capacity of each post or the total capacity of uploading summer note files? Or is there a way to limit the number of image uploads per post? I can limit the capacity of each image using the summer note setting -
Specify a default rendering method for a certain type in Jinja2
In Jinja2, how would you specify a default rendering method for a certain type? In particular, datetime? I found it quite annoying when rendering datetime values from Django. They look like 2022-11-04T00:00:00.987654+00:00. What was that T for, and why there was a plus + followed by 00:00. My users who lived on small islands for their entire life wouldn't understand. Aside from the formatting problem, Django gives UTC time objects. Always UTC, despite the TIME_ZONE in its settings module has been specified with a different value. I know I can use a filter thing like me.time_of_death|format_datetime. However putting it after every single datetime field sounds insane to me, and I don't want to be woken up in the midnight because of a datetime without that filter released on the previous day. Is it possible to make it default? -
Populate custom field in Django form
I would like users to have the ability to update their email address. I created a profile that has fields, but the email address is in the users table. I created a form that adds a custom form field and it works for update. However, I can't find a way to pre-populate this field on a REQUEST.GET. # forms.py class ProfileForm(forms.ModelForm): class Meta: model = Profile fields = ('name', 'timezone') class ProfileUpdateForm(ProfileForm): email = forms.EmailField(max_length=254) class Meta(ProfileForm.Meta): fields = ProfileForm.Meta.fields + ('email',) # views.py @login_required @require_http_methods(["GET","POST"]) def profile_update_view(request): context = {} # Get the logged in users profile profile_object = Profile.objects.get(user=request.user.id) if request.method == 'GET': profile_form = ProfileUpdateForm(None, instance=profile_object) context["form"] = profile_form # how can I add User.objects.get(id=request.user.id).email to the custom field if request.method == 'POST': profile_form = ProfileUpdateForm(request.POST or None, instance=profile_object) context["form"] = profile_form if profile_form.is_valid(): try: # email address exists user = User.objects.get(email=profile_form.cleaned_data.get('email')) messages.error(request, 'Failed profile update. Email address already exists.') except: # email address available # get user object user = User.objects.get(id=request.user.id) user.email = profile_form.cleaned_data.get('email') # update user object user.save() profile_form.save() messages.success(request, 'Successful profile update.') return render(request, "profile.html", context) -
Implementing a reoccurring subscription based logic in Django
I have two models. A plan model which comprises of three Plans, and a Subscription model. A user is permitted to have only one active plan at a time. The logic is that when a user first subscribes to a plan, by default, the status will be pending. After the site admin confirms the subscription(deposit), he will toggle the active Boolean field, and automatically, the status will change to Confirmed. Now, where I have issues is with implementing what happens after the subscription has been confirmed. I will try explaining the logic as much as I can. A user is supposed to be receiving a daily profit till the plan expiries. Let me cite an example: Suppose User A subscribes to the basic plan. The basic plan has a daily percentage bonus of 10% and lasts for 7 days(duration). Now after the admin activates the subscription, the user is supposed to be receiving a daily profit of 10% of his investment for a duration of 7 days. Assuming he subscribes with $100.00, by the end of the first day, his balance should be $110.00, and so on. Then after the plan expiries, the status should automatically change to Expired, the … -
Django como passar argumntos para um receiver de um signal
Olá, segue uma explicação rapida de como passar atributos via Signal.connect() para um receiver de um siginal no django. Me deparei com esse probleminha a uns dias atrás pois precisava passar um json para ser salvo em um signal durante o evento "pre-save" do model. Como fazer? from functools import partial #Criar o objeto partial data = partial( signal_function, data=dados_pass, signal_duid="id do signal para nao ter replicação") #chamar o objeto criado dentro do connect pre_save.connect( data, sender=MeuModel, dispatch_uid="key_aditional_date", weak=False, ) #Criar a função que vai ser acionada no evento def signal_function(data, sender, instance, signal_duid, **kwargs): if signal_duid == "id do signal para nao ter replicação": instance.additional_data = {"user": data} É isso, qualquer duvida estou a disposição.Abraço. Olá, segue uma explicação rapida de como passar atributos via Signal.connect() para um receiver de um siginal no django. Me deparei com esse probleminha a uns dias atrás pois precisava passar um json para ser salvo em um signal durante o evento "pre-save" do model. Como fazer? from functools import partial #Criar o objeto partial data = partial( signal_function, data=dados_pass, signal_duid="id do signal para nao ter replicação") #chamar o objeto criado dentro do connect pre_save.connect( data, sender=MeuModel, dispatch_uid="key_aditional_date", weak=False, ) #Criar a função que … -
React & Next.js 13 OR Angular & Django
I am new to development and looking to build my first dashboard type app. I dont expect to do this in one shot and am going to iterate over time. Backend: I have a bunch of data from different environmental sensors that I want to be able to ingest into a database and correlate. My thought tis that the power of python will strive to do this best in the backend. Can a Javascript/Typescript backend perform at the same level as python backend? Frontend: Since this is a dashboard, being able to update data live is key. I like the simplicity I can see in react, but like the modularlity of Angular. Next.js 13 looks to have some more features to be able to support this idea as well now. For client vs. server side, my goal is serverside as much as possible to allow for users to be able to access the dashboard regradless of the processing of the end device. Other: Eventually I want to be able to open up the system to allow for plugins for data types as well as front end visualizations through modular "components". So not sure which would make this process easier in … -
Django Module Object is Not Callable Problem
I'm struggling to fix an error that doesn't allow me to access my /api/lead/ URL, as I keep getting an error "module object is not callable. Within my DjangoApp project, I have one other folder named api, and one other folder with the standard name of the project, which in my case is "DjangoApp". api/models.py : from django.db import models # Create your models here. class Lead(models.Model): name = models.CharField(max_length=100) email = models.EmailField() message = models.CharField(max_length=300) created_at = models.DateTimeField(auto_now_add=True) api/LeadListCreate.py : from .models import Lead from api import LeadSerializer from rest_framework import generics class LeadListCreate(generics.ListCreateAPIView): queryset = Lead.objects.all() serializer_class = LeadSerializer api/LeadSerializer.py : from rest_framework import serializers from .models import Lead class LeadSerializer(serializers.ModelSerializer): class Meta: model = Lead fields = ('id', 'name', 'email', 'message') api/urls.py : from django.urls import path from . import views urlpatterns = [ path('api/lead/', views.LeadListCreate.as_view() ), ] DjangoApp/urls.py : from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('', include('api.urls')), ] -
Secure Websocket and https with Django [closed]
I am working with a Django development server in version 4.0.1 which uses an SSL certificate (https). The application uses websockets and there is the problem: it doesn’t work. Please note that the use of websockets works without SSL certificates. I’ve read that all you have to do is change “ws://” to “wss://” but that doesn’t seem to be enough. Do you have an idea? Thanks, MLP. -
How do I Filter a viewlist based on a selection made on a createview form? Django
I am learning how to use Python & Django. I don't have much experience, and this has been a huge learning process for me. Please forgive any ignorance in my question. I am designing a Django app and have a few relational tables created. My question involves only my first 2 models/forms/views. Here are my models ` class CustomerName(models.Model): #Fields company = models.CharField(max_length = 60, help_text = "Enter Customer Name",unique=True) def __str__(self): return self.company class ProgramName(models.Model): #Fields customer = models.ForeignKey("CustomerName",on_delete=models.CASCADE) program = models.CharField(max_length = 60, help_text = "Enter Program Name") def __str__(self): return self.program ` Here are my Views (Ive left out the customer add view since that works and I don't think its relevant) ` class ProgramAddView(CreateView, ListView): template_name = 'app/ProgramAdd.html' form_class = Programform model = ProgramName success_url = reverse_lazy('Part Number Add') def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context["qs_json"] = json.dumps(list(ProgramName.objects.values())) return context ` Here is the form ` class Programform(forms.ModelForm): class Meta: model = ProgramName fields = "all" class Customerform(forms.ModelForm): class Meta: model = CustomerName fields = ('company',) ` Here is the HTML app/ProgramAdd.html ` {% extends 'base.html' %} {% block content %} <h2>Program</h2> <form method="post" class = 'formarea'> <div id = 'formarea' class = 'formdiv'> {{ form.media.js … -
BooleanField Model not showing the default False value
I have a model class where the variable completed_application should default to False when creating a new user (to show that the user hasn't completed an application yet). However, by default when a new user is created it doesn't show as False in Django admin but '-' instead. models.py: class Completed(models.Model): class Meta: verbose_name_plural = 'Completed Application' user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE) completed_application = models.BooleanField(default=False) admin.py: class Company(admin.StackedInline): model = Completed can_delete: False verbose_name_plural = 'Completed Application' class UserAdmin(UserAdmin): list_display = ('username', 'first_name', 'last_name', 'email', 'company', 'completed') search_fields = ('username', 'email',) inlines = [Company] list_filter = ('is_active',) fieldsets = ( (None, {'fields': ('username', 'password')}), (('Personal info'), {'fields': ('first_name', 'last_name', 'email')}), (('Permissions'), { 'fields': ('is_active', 'is_staff', 'groups',), }), (('Important dates'), {'fields': ('last_login', 'date_joined')}), ) The red arrow in the first image above points to the Users admin panel for a newly created user. The second image shows the individual user in Django admin with the custom model added to that user. Other point to note: Checking the box and saving the user it shows True (as to be expected), but then unchecking the box and saving the user it eventually shows False and not '-'. Could someone explain what this '-' means … -
Partial update to extended user profile
I have a extension to user model in Django, adding multiple fields to the regular user profile. In order for the user to be able to change them, I have created a form that should be able to modify those fields but with no success... models.py class UserProfileModel(models.Model): user = models.OneToOneField(User, null=True, on_delete=models.CASCADE) agency_name = models.CharField(max_length=255, null=True) license_number = models.CharField(max_length=10, null=True) phone = models.CharField(max_length=10, null=True) phone2 = models.CharField(max_length=10, null=True) fax = models.CharField(max_length=10, null=True) address = models.CharField(max_length=255, null=True) city = models.CharField(max_length=255, null=True) zip_code = models.CharField(max_length=10, null=True) about = models.CharField(max_length=255, null=True) # חפ pi_id = models.CharField(max_length=10, null=True) reason_pension = models.CharField(max_length=255, null=True) reason_policy = models.CharField(max_length=255, null=True) reason_gemel = models.CharField(max_length=255, null=True) reason_hishtalmot = models.CharField(max_length=255, null=True) def __str__(self): return str(self.user) class Meta: ordering = ('user',) forms.py class UserProfileChangeForm(forms.ModelForm): customer_name = forms.CharField( widget=forms.TextInput( attrs={ "placeholder": "שם לקוח", "class": "form-control" } )) labelwhite = forms.CharField( widget=forms.TextInput( attrs={ "placeholder": "", "class": "form-control" } )) smoker = forms.CharField( widget=forms.TextInput( attrs={ "placeholder": "מעשן", "class": "form-control" } )) ensurence_amount = forms.CharField( widget=forms.TextInput( attrs={ "placeholder": "ביטוח חיים", "class": "form-control" } )) ensurence_amount1 = forms.CharField( widget=forms.TextInput( attrs={ "placeholder": "00000", "class": "form-control" } )) disability_amount = forms.CharField( widget=forms.TextInput( attrs={ "placeholder": "נכות מתאונה", "class": "form-control" } )) class Meta: model = LifeEnsurenceModel fields = ('customer_name', … -
How to set a default time in Django ModelForm
I created a Django ModelForm. Here is the models.py file class Room(models. Model): available_from = models.TimeField() available_till = models.TimeField() Here is the forms.py file class RoomForm(forms.ModelForm): class TimeInput(forms.TimeInput): input_type = 'time' available_from = forms.TimeField( widget=TimeInput(), ) available_till = forms.TimeField( widget=TimeInput(), ) class Meta: model = Room fields = ['available_from','available_till'] I want to know how to set a default time to the form. -
asyncio loop blocking django http and websocket requests
i've been trying to build application where i need to listen to the postgres notify listen constantly and send those messages via websocket and also need the usual django apis, i'm able to run both separately, but as initiate the db listener it starts blocking http or websocket requests connection = get_db_conn() connection.set_isolation_level(psycopg2.extensions.ISOLATION_LEVEL_AUTOCOMMIT) cur = connection.cursor() cur.execute("LISTEN new_item_added;") async def db_listen(): print('Started Listening to DB notify ...') while True: await asyncio.sleep(1) data = await queue.get() await NotificationConsumer.send_data(data.payload) # class method to send over websocket print("message received: ", data.payload) def listen_callback(): connection.poll() queue.put_nowait(connection.notifies.pop(0)) # calling this function from django app's __init__.py file def initiate_db_listener(): loop = asyncio.new_event_loop() asyncio.set_event_loop(loop) loop.add_reader(connection, listen_callback) loop.run_until_complete(db_listen()) if __name__ == '__main__': initiate_db_listener() i tried many variations of it, all are blocking the main thread -
How does token based authentication work?
I implement a web application (with Python+Django - to the extent that matters). Users can log in normally with username and password, but in addition I want to provide an API which users use to script the interaction with my site. For the API authentication my plan was to do something like this: In the database I create table with 'tokens' - i.e. random strings which point to the user database. The user gets a token string. For every API call the user passes the token string along with their request In the API implementation the code: Verify the token. Log the correct user in and execute the API function as the user matching the token. Log the user out again. Return the result Does this make sense? On the one hand it seems very simple - on the other hand it feels quite homemade, something I have heard is not recommended when it comes to security related topics? -
Django 'x' object has no attribute 'get_form'
I have a generic DetailView and I'm trying to do a form for the comment of an user after I display the details of the model but I keep getting the error 'ProductFeedbackView' object has no attribute 'get_form'. I don't know if the templates have any problem because the error is in the view when I try to get the form into a variable. Here is comment's model: class Comment(models.Model): service = models.ForeignKey(Product, on_delete=models.CASCADE, blank=True, null=True, related_name='comments') author = models.ForeignKey(User, on_delete=models.CASCADE, blank=True, null=True,) content = models.CharField(max_length=200, null=False, blank=True) ... def get_absolute_url(self): return reverse('product-feedback', kwargs={'pk': self.pk}) Comment's form: class CommentForm(forms.ModelForm): content = forms.CharField() class Meta: model = Comment fields = ['content'] View: class ProductFeedbackView(DetailView): model = Product template_name = 'services/product-feedback.html' form_class = CommentForm def get_success_url(self): return reverse('product-feedback', kwargs={'pk': self.object.id}) def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context['form'] = CommentForm(initial={'content': self.object}) return context def post(self, request, *args, **kwargs): self.object = self.get_object() form = self.get_form() if form.is_valid(): return self.form_valid(form) else: return self.form_invalid(form) def form_valid(self, form): form.instance.author = self.request.user form.save() return super().form_valid(form) urls's: ... path('feedback/<int:pk>/', ProductFeedbackView.as_view(), name='product-feedback'), Template: <a href="{% url 'product-detail' product.id %}">Details</a> <a href="{% url 'product-feedback' product.id %}">Feedback</a> <p>{{ product.author }}</p> <h1>{{ product.title }}</h1> <p>{{ product.description }}</p> {% if user.is_authenticated %} <form method="POST"> … -
DRF filter/search return everything?
I'm currently doing self project inventory app and trying to implement filter and search. what I've done #views.py from django_filters.rest_framework import DjangoFilterBackend from rest_framework import filters class ListInventories(generics.ListAPIView): serializer_class = Inventory filter_backends = [filters.SearchFilter] search_fields = ['name'] filter_backends = [DjangoFilterBackend] filterset_fields = ['name', 'stock'] def get(self, request): inventories = Inventory.objects.all() serializer = InventorySerializers(inventories, many=True) return Response({'inventories': serializer.data}) class InventoryDetails(APIView): def get(self, request, pk): inventories = Inventory.objects.get(id=pk) serializer = InventorySerializers(inventories) return Response({'inventory': serializer.data}) in settings.py INSTALLED_APPS = [ ... 'django_filters', ... ] in url: http://127.0.0.1:8000/api/inventory?name=para I tried ?search=para and ?search=anynonsense . and the DRF would always return everything. just for the sake of clarification here is the screenshot(the total of item is just 3 for now, but even then filter/search should work): I expect the filter/search to function at least on a minimal level. What do I do to make this right? -
Django validation error from nested serializer
Inside a run_validation method I am calling another serializer's is_valid(raise_exception=True). If the input is not valid to the other serializer, then the program fails with the following error. super().__init__(*args, **kwargs) ValueError: need more than 0 values to unpack Here goes the code: def run_validation(self, data): modules = data.getlist("modules", []) if "modules" in data else [] if len(modules) > 0: sm_ser = SMSerializer(data=modules, many=True) sm_ser.is_valid(raise_exception=True) return super(CSSerializer, self).run_validation(data) Question 1. Is it ok to call validation for another object like this in this method? Question 2. How to make the run_validation raise the errors that are coming from the other serializer. sm_ser.errors is a list of errors which is not coming through. [ { "coordinates":{ "26":{ "1":[ "ErrorDetail(string=""Ensure that there are no more than 25 digits in total.", "code=""max_digits"")" ] }, "27":{ "1":[ "ErrorDetail(string=""Ensure that there are no more than 14 decimal places.", "code=""max_decimal_places"")" ] }, }, "c_coordinates":{ "50":{ "1":[ "ErrorDetail(string=""Ensure that there are no more than 14 decimal places.", "code=""max_decimal_places"")" ] } } }, ] -
How to exclude html from js export to xlsx with ExcellentExports.js?
Thanks in advance! In case it helps I am using Django3 and Python3 for the backend and javascript, html, and css for the front end. I am also using ExcellentExport.js to export html tables to excell. It works great with one caveat. It is exporting the entire html page instead of the two ids I specified. the html code snip of the tables to be exported: <div id="table1" class="position-absolute text-nowrap" style="max-width: 300px; max-height: 50px; right: 1600px; top: 145px;"> {% render_table tableP18 %} </div> <div id="table2" class="position-absolute" style="max-width: 100px; max-height: 10px; right: 1300px; top: 365px;"> {% render_table tableP17 %} </div> My js: function export() { return ExcellentExport.convert({ anchor:this, filename:'data_123.array',format: 'xlsx'}, [ {name: 'filename1', from: {table: 'table'}}, {name: 'filename2', from: {table: 'table2'}} ]); } What I'm trying to figure out is how to exclude certain html elements from the export in either the html or in js. Please let me know if you need any more information or code! -
Suitescript 2.x: Create a Customer Deposit upon Approval of Sales Order
Can you please check my code. I want to create a Customer Deposit upon approval of Sales Order. However, the Customer Deposit is both being created in Pending Approval and Pending Fulfillment. Can you please help fix my code. Thank you! /** *@NApiVersion 2.x *@NScriptType UserEventScript */ define(["N/record"], function (record) { try { function afterSubmit(scriptContext) { if (scriptContext.type == scriptContext.UserEventType.CREATE || scriptContext.type == scriptContext.UserEventType.EDIT) { var objSoRecord = scriptContext.newRecord; log.debug("Load the Sales Order", objSoRecord); var intsoId = objSoRecord.id; log.debug("Get the Sales Order Id: " , intsoId) var stCustomer = objSoRecord.getValue({ fieldId: 'entity' }); log.debug("Customer ", stCustomer) //Get Values var checkStatus = objSoRecord.getValue('status'); log.debug("SO status: " , checkStatus); if (checkStatus !== "Pending Approval"|| checkStatus == "Pending Fulfillment") { var objcustDeposit = record.create({ type: record.Type.CUSTOMER_DEPOSIT, isDynamic: true, defaultValues: { 'entity': stCustomer, 'salesorder': intsoId } }); //Insert Code here var saveCustDep = objcustDeposit.save(); } } } } catch (error) { log.debug("Capture Error:", error); } return { afterSubmit: afterSubmit } }); N/AN/AN/AN/AN/AN/AN/AN/AN/AN/A -
models in django. is many to many the best option?
I am trying to make my first website with django. Basically I'm making a website to check the bus schedule in my rural area. I think that the best thing is to make two models, one where all the bus stations are defined and the other where the route is established, for each route two stations are needed (origin and destination). I was wondering what was the best way to relate the two models. class BusStations(models.Model): bus_stations = models.CharField(max_length=80) bus_stations_identifier = models.IntegerField() def __str__(self): return self.bus_stations class Routes(models.Model): origin_station = models.ManyToManyField( BusStations, related_name='origin_station') destination_station = models.ManyToManyField( BusStations, related_name='destination_station') data = models.JSONField() slug = models.SlugField(unique=True, null=True) def __str__(self): return f'{self.origin_station} - {self.estacion_destino}' For now I was doing it with ManytoMany relationships, but this is giving me problems. For example, I am not able to return the origin and destination stations as str in the route model. I would also like it to be the slug. Thanks for advance. -
COMO PROTEGER URL DE FICHEROS ESTATICOS EN DJANGO
HOLAAAA BUENAS TARDES HE ESTADO TRABAJANDO EN UNA APP PARA REGISTRO DE DOCUMENTOS EN FORMATOS PDF, HASTA EL MOMENTO TODO MUY BIEN , PERO ME ENCUENTRO LA PROBLEMATICA DE QUE CUANDO GENERE MI TABLA DE CONSULTA Y CONFIGURO MI VISTA DE LOS ARCHIVOS DICHA VISTA NO ESTA PROTEGIDA, YA QUE CUANDO DESCONECTO EL SERVIDOR DE DJANGO Y COPIO LA URL ME DA ACCESO CON LOGUEO Y SIN LOGUEO COMO PUEDO PROTEGER ESA RUTA.. ALGUNA AYUDA POR FAVOR EL PROYECTO FUE HECHO EN DJANGO -
Multiple django databases and queries
good work. I have a database connection structure as follows. DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'DATA', 'USER': 'postgres', 'PASSWORD': 'root', 'HOST': '127.0.0.1', 'PORT': '5432', }, "big_data": { "ENGINE": "mssql", "NAME": "DATABASE_NAME", "USER": "USER_NAME", "PASSWORD": "PASSWORD", "HOST": "HOST_ADDRESS", "PORT": "1433", "OPTIONS": { "driver": "ODBC Driver 17 for SQL Server", }, }, } I need to fetch and display data via mssql. And this, `from django.db import connections with connections['big_data'].cursor() as cursor: cursor.execute("SELECT * FROM [aab].[CENTER]")` but the page load is delayed. To get this with django orm python manage.py inspectdb --database=big_data > models.py i run it gives a blank output. It says on the internet that it doesn't receive it because of the database schema. How can I get around this how can I get it on django orm just to write a query. Page load speed is very good in queries performed with Django orm. Also, when I create the model file manually, it adds the application name to the beginning of the table and I can't ask what I did. This is a problem for me. The database I connect belongs to a different system, so I can't interfere too much because I only have the … -
Django create or update model only if field not equal to certain value
We have a potential race condition where multiple users can try to create or update a record. Wondering if there's a way to create a column, than when set (to say true), then an exception will be thrown, preventing the update. The underlying database is postgres, but since we're using django to wrap it, we would like to limit ourselves to something django offers, and not mess with very specific database settings. Thanks!