[django] Django Tips
移転しました。
Djangoのドキュメントにのっているけど、自分用に覚えておきたいための
Django Tips を書いとく。自分用のメモ
複数列をユニーク指定
modelのMetaクラスにunique_togetherを指定
class Meta: unique_together = (('user1','user2'),)
複雑なSQLを作る例
(A AND B) OR (C AND D)
foo = Foo.objects.filter( Q(a=a_value,b=b_value) | Q(c=c_value,d=d_value) )
jQueryとDjangoでJSON形式でサーバから返したリストデータをセレクトメニューに表示
参考URLそのまま
views.py
from django.core import serializers from django.http import HttpResponse from testapp.main.models import * ... def models_reload(request): model_list = Model.objects.all() data = serializers.serialize("json", model_list[:30], ensure_ascii=False) return HttpResponse(data, mimetype="text/javascript")
select.html
{% extends "user/base.html" %} {% block additional_js %} <script type="text/javascript" src="/static/javascripts/jquery-1.1.3.1.pack.js"></script> <script type="text/javascript"> function reloadModels() { $("#id_models").empty(); $.ajax({ type: "GET", url: "/models/reload/", data: {}, dataType: "json", success: function(response) { $.each(response, function(i) { model = this; row = "<option value='" + model.pk + "'>"; row += model.fields.name; row += "</option>"; $(row).appendTo("#id_models"); }); } }); } $(function() { reloadPlaces(); }); </script> {% endblock %} {% block main_content %} <select size="8" id="id_models" name="model" style="width: 500px;"></select> {% endblock %}