タグ付けされた質問 「django」

Djangoは、Pythonで記述された、オープンソースのサーバー側Webアプリケーションフレームワークです。複雑なデータ駆動型のWebサイトとWebアプリケーションを作成するのに必要な労力を軽減するように設計されており、特にコードの削減、冗長性の排除、暗黙よりも明示的であることに重点を置いています。

2
Djangoでグループ化して集約する方法
ORMを介して作成したい非常に単純なクエリがありますが、それを理解できません。 私は3つのモデルを持っています: 場所(場所)、属性(場所が持つ可能性のある属性)、および評価(スコアフィールドも含むM2M 'から'モデル) いくつかの重要な属性を選択し、それらの属性によって自分の場所をランク付けできるようにしたい-つまり、選択したすべての属性よりも合計スコアが高い=より良い。 次のSQLを使用して、必要なものを取得できます。 select location_id, sum(score) from locations_rating where attribute_id in (1,2,3) group by location_id order by sum desc; 戻る location_id | sum -------------+----- 21 | 12 3 | 11 ORMで取得できる最も近いものは次のとおりです。 Rating.objects.filter( attribute__in=attributes).annotate( acount=Count('location')).aggregate(Sum('score')) どちらが戻る {'score__sum': 23} つまり、場所ごとにグループ化されていない、すべての合計です。 これを回避する方法はありますか?SQLを手動で実行することもできますが、一貫性を保つためにORMを使用したいと思います。 ありがとう

6
djangoテンプレートでクエリフィルタリングを実行するにはどうすればよいですか
ビュー内のPythonコードと同等のオブジェクトのセットを取得するには、djangoテンプレート内からフィルター処理されたクエリを実行する必要があります。 queryset = Modelclass.objects.filter(somekey=foo) 私のテンプレートでやりたい {% for object in data.somekey_set.FILTER %} でも、FILTERの書き方がわからないようです。

7
Django:ユーザーがログインしたときに通知しますか?
私のDjangoアプリでは、ユーザーがログインしたときにいくつかの定期的なバックグラウンドジョブの実行を開始し、ユーザーがログアウトしたときにそれらの実行を停止する必要があるため、エレガントな方法を探しています。 ユーザーのログイン/ログアウトの通知を受け取る ユーザーのログインステータスを照会する 私の観点からすると、理想的な解決策は それぞれによって送信された信号django.contrib.auth.views.loginと... views.logout またはdjango.contrib.auth.models.User.is_logged_in()に類似した方法... User.is_active()... User.is_authenticated() Django 1.1.1にはそれがなく、ソースにパッチを適用して追加するのは気が進まない(とにかく、それを行う方法がわからない)。 一時的な解決策として、is_logged_inブールフィールドをUserProfileモデルに追加しました。これはデフォルトでクリアされ、ユーザーが最初にランディングページ(で定義LOGIN_REDIRECT_URL = '/')にアクセスしたときに設定され、後続のリクエストでクエリされます。これをUserProfileに追加したので、その目的のためだけに組み込みのUserモデルから派生してカスタマイズする必要はありません。 私はこの解決策が好きではありません。ユーザーが明示的にログアウトボタンをクリックした場合、フラグをクリアできますが、ほとんどの場合、ユーザーはページを離れるか、ブラウザーを閉じるだけです。これらの場合にフラグをクリアすることは、私には簡単ではないようです。その上(それはむしろデータモデルの明快さのニッチピッキングです)、UserProfileにis_logged_inは属していませんが、Userモデルに属しています。 誰かが別のアプローチを考えることができますか?
83 python  django  login  signals 

2
Djangoはパラメータ付きのredirect()を返します
ビュー関数で、別のビューを呼び出してデータを渡したい: return redirect('some-view-name', backend, form.cleaned_data) 、ここで、backendはregistration.backendsオブジェクトであり、form.cleaned_dataはフォームデータのdictです(ただし、発生を防ぐために、両方を* argsまたは** kwargsとして送信する必要があります Don't mix *args and **kwargs in call to reverse()!エラーが発生します)。私がドキュメントで見つけたものから: def my_view(request): ... return redirect('some-view-name', foo='bar') 'some-view-name'引数を指定する必要があるようですが、それは単にビュー関数の名前ですか、それともURLの名前ですか?だから私はそれをdjango-registrationで行われるのと同じようにしたいと思います、ここで: to, args, kwargs = backend.post_registration_redirect(request, new_user) return redirect(to, *args, **kwargs) def post_registration_redirect(self, request, user): return ('registration_complete', (), {}) では、ビュー関数を直接呼び出すことはできますか、それともURLを指定する必要がありますか?そして、もっと重要なのは、私のfunciotn呼び出し(および必要に応じてURL)がどのように見えるべきかということです。バックエンドとcleaned_dataの両方が、後で使用するためにこのビューを通過するだけです。私はこれを試しましたが、それは不適切です: url(r'^link/$', some-view-name) def some-view-name(request, *args): これと同様に : …

2
フォームを作成せずに、Djangoで管理フィールドを不要にすることはできますか?
Djangoの管理者部分に新しいプレーヤーを入力するたびに、「このフィールドは必須です」というエラーメッセージが表示されます。 カスタムフォームを作成せずにフィールドを不要にする方法はありますか?これをmodels.pyまたはadmin.py内で実行できますか? models.pyの私のクラスは次のようになります。 class PlayerStat(models.Model): player = models.ForeignKey(Player) rushing_attempts = models.CharField( max_length = 100, verbose_name = "Rushing Attempts" ) rushing_yards = models.CharField( max_length = 100, verbose_name = "Rushing Yards" ) rushing_touchdowns = models.CharField( max_length = 100, verbose_name = "Rushing Touchdowns" ) passing_attempts = models.CharField( max_length = 100, verbose_name = "Passing …

15
Djangoの./manage.pysyncdbを実行すると、管理者ユーザーが自動的に作成されます
私のプロジェクトは初期の開発段階にあります。私は頻繁にデータベースを削除し、実行manage.py syncdbしてアプリを最初からセットアップします。 残念ながら、これは常にポップアップします。 You just installed Django's auth system, which means you don't have any superusers defined. Would you like to create one now? (yes/no): 次に、ユーザー名、有効な電子メールアドレス、およびパスワードを入力します。これは面倒です。タイピングに飽きてきましたtest\nx@x.com\ntest\ntest\n。 実行時にこの手順を自動的にスキップしてプログラムでユーザーを作成するにはどうすればよいmanage.py syncdbですか?

9
完全なDjangoURL構成を決定する
完全なdjangoURL構成を取得する方法はありますか? たとえば、Djangoのデバッグ404ページには、含まれているURL構成が表示されないため、これは完全な構成ではありません。 回答:Alasdairのおかげで、スクリプトの例を次に示します。 import urls def show_urls(urllist, depth=0): for entry in urllist: print(" " * depth, entry.regex.pattern) if hasattr(entry, 'url_patterns'): show_urls(entry.url_patterns, depth + 1) show_urls(urls.urlpatterns)
82 python  django  url 

5
クラスベースビューの利点は何ですか?
今日、Django 1.3 alphaが出荷されていることを読みました。最も宣伝されている新機能は、クラスベースのビューの導入です。関連するドキュメント を読みましたが、それらを使用することで得られる大きな利点™を見つけるのが難しいので、ここでそれらを理解するための助けを求めています。ドキュメントから高度な例を見て みましょう。 urls.py from books.views import PublisherBookListView urlpatterns = patterns('', (r'^books/(\w+)/$', PublisherBookListView.as_view()), ) views.py from django.shortcuts import get_object_or_404 from django.views.generic import ListView from books.models import Book, Publisher class PublisherBookListView(ListView): context_object_name = "book_list" template_name = "books/books_by_publisher.html", def get_queryset(self): self.publisher = get_object_or_404(Publisher, name__iexact=self.args[0]) return Book.objects.filter(publisher=self.publisher) def get_context_data(self, **kwargs): # …

6
django-celeryを使用したユニットテスト?
django-celeryプロジェクトのテスト方法を考え出そうとしています。ドキュメントのメモを読みましたが、実際に何をすべきかについてはよくわかりませんでした。実際のデーモンでタスクをテストすることについては心配していません。コードの機能だけを心配しています。主に私は疑問に思っています: task.delay()テスト中にバイパスするにはどうすればよいCELERY_ALWAYS_EAGER = Trueですか(設定を試みましたが、違いはありませんでした)? 実際にsettings.pyを変更せずに、推奨されるテスト設定をどのように使用しますか(それが最善の方法である場合)? 引き続き使用できますmanage.py testか、それともカスタムランナーを使用する必要がありますか? 全体として、セロリでテストするためのヒントやヒントは非常に役立ちます。

6
「「テスト」モジュールが正しくインポートされていない」とはどういう意味ですか?
動作中のテストを1行ずつコピーし、いくつかの名前を変更したところ(少なくともそう思った)、この非常に不可解なエラーが発生しました:(いくつかのものをFOO、BARに置き換えました) ImportError: 'tests' module incorrectly imported from 'FOO/exports/tests'. Expected 'FOO/exports'. Is this module globally installed? 問題は、私がエラーをまったく理解していないことです。このエラーメッセージはどういう意味ですか? 完全なスタックトレース: Traceback (most recent call last): File "BAR/modeling/manage.py", line 10, in <module> execute_from_command_line(sys.argv) File "/Users/jonathan/anaconda/lib/python2.7/site-packages/django/core/management/__init__.py", line 353, in execute_from_command_line utility.execute() File "/Users/jonathan/anaconda/lib/python2.7/site-packages/django/core/management/__init__.py", line 345, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/Users/jonathan/anaconda/lib/python2.7/site-packages/django/core/management/commands/test.py", line 30, in run_from_argv super(Command, …
82 python  django 

7
Python Django Rest Framework UnorderedObjectListWarning
Django 1.10.4から1.11.1にアップグレードしましたが、テストを実行すると突然、次のようなメッセージが大量に表示されます。 lib/python3.5/site-packages/rest_framework/pagination.py:208: UnorderedObjectListWarning: Pagination may yield inconsistent results with an unordered object_list: <QuerySet [<Group: Requester>]> paginator = self.django_paginator_class(queryset, page_size) 私はそれをDjangoページネーションモジュールまでさかのぼりました:https: //github.com/django/django/blob/master/django/core/paginator.py#L100 それは私のクエリセットコードに関連しているようです: return get_user_model().objects.filter(id=self.request.user.id) この警告の詳細を確認するにはどうすればよいですか?order_by(id)すべてのフィルターの最後にを追加する必要があるようですが、order_byを追加する必要があるコードが見つからないようです(警告はスタックトレースを返さないため、テスト中にランダムに発生するため)実行)。 ありがとう! 編集: したがって、@ KlausDを使用します。冗長性のヒント、このエラーの原因となるテストを調べました。 response = self.client.get('/api/orders/') これはに行きますOrderViewSetが、get_querysetのいずれもそれを引き起こさず、シリアライザークラスの何もそれを引き起こしません。同じコードを使用して/ api / ordersを取得する他のテストがありますが、それらはそれを引き起こしません.... get_querysetの後にDRFは何をしますか? https://github.com/encode/django-rest-framework/blob/master/rest_framework/pagination.py#L166 ページネーションにトレースバックを入れると、django restフレームワークに関連するものがたくさんありますが、どのクエリが注文警告をトリガーしているかを示すものは何もありません。

3
Djangoで同じパラメーターの複数の変数を使用してrequest.GETを処理する方法
Djangoビューではrequest.GET['variablename']、にアクセスできるため、ビューでは次のようなことができます。 myvar = request.GET['myvar'] 実際のrequest.GET['myvar']オブジェクトタイプは次のとおりです。 <class 'django.http.QueryDict'> ここで、同じパラメーター名を持つ複数の変数を渡したい場合、つまり: http://example.com/blah/?myvar=123&myvar=567 listパラメータに対してPythonを返したいmyvar場合は、次のようにします。 for var in request.GET['myvar']: print(var) ただし、URLで渡された最後の値のみを取得しようとすると、つまり上記の例では567が取得され、シェルの結果は次のようになります。 5 6 7 ただし、印刷request.GETすると、次のようになりますlist。 <QueryDict: {u'myvar': [u'123', u'567']}> 更新:最後の値を返すように設計されています。私のユースケースはリストが必要です。 djangoドキュメントから: QueryDict。getitem(key)指定されたキーの値を返します。キーに複数の値がある場合、 getitem()は最後の値を返します。キーが存在しない場合、django.utils.datastructures.MultiValueDictKeyErrorを発生させます。(これはPythonの標準KeyErrorのサブクラスであるため、KeyErrorのキャッチに固執することができます QueryDict.getlist(key)要求されたキーを含むデータをPythonリストとして返します。キーが存在しない場合は、空のリストを返します。ある種のリストを返すことが保証されています。 更新:django devがこれを行った理由を誰かが知っている場合は、私に知らせてください。リストを表示するのは直感に反しているようで、リストのようには動作しません。あまりパイソンではありません!

4
DjangoビューからHTTPステータスコード204を返すにはどうすればよいですか?
ステータスコードを返したい 204 No ContentDjangoビューから。これは、データベースを更新する自動POSTに応答するものであり、更新が成功したことを示す必要があります(クライアントをリダイレクトせずに)。 HttpResponse他のほとんどのコードを処理するためのサブクラスがありますが、204は処理しません。 これを行う最も簡単な方法は何ですか?

6
DjangoDateFieldのデフォルトオプション
日時フィールドを持つモデルがあります。 date = models.DateField(_("Date"), default=datetime.now()) 組み込みのdjangoadminでアプリをチェックするとDateField、時間も追加されているため、保存しようとするとエラーが返されます。デフォルトを日付だけにするにはどうすればよいですか?(datetime.today()どちらも機能していません)

2
同じモデルの2つの日付フィールドを比較するDjangoクエリセットフィルターを作成する方法
Solrインデックスでアクティビティレコードが古くなっているクエリを取得しようとしています。Activity.updatedデータベースの日付がActivity.added_toSolr_date同じレコードの日付よりも大きいかどうかを確認したいと思います。 stale_activities_queryset = Activity.objects.filter(updated__gte = self.added_toSolr_date) モデル class Activity(models.Model): # Last time entry / metric was updated in the Activity model database updated = models.DateTimeField( verbose_name="CRUD date") # When it was added to Solr Index Date added_toSolr_date = models.DateTimeField(blank=True, null=True, verbose_name="Added to Solr Index Date") 私は、Djangoのクエリのドキュメントを参照: https://docs.djangoproject.com/en/1.4/ref/models/querysets/ そしてサンプルのためのユニットテスト: https://github.com/django/django/blob/master/tests/ modeltests …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.