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

WebフレームワークDjangoのモデルクラスの使用に関する質問。



12
Django Modelオブジェクトをすべてのフィールドをそのままにしてdictに変換します
どのようにしてDjango Modelオブジェクトをすべてのフィールドを持つdictに変換しますか?すべてが理想的には外部キーとフィールドを含みますeditable=False。 詳しく説明しましょう。次のようなDjangoモデルがあるとします。 from django.db import models class OtherModel(models.Model): pass class SomeModel(models.Model): normal_value = models.IntegerField() readonly_value = models.IntegerField(editable=False) auto_now_add = models.DateTimeField(auto_now_add=True) foreign_key = models.ForeignKey(OtherModel, related_name="ref1") many_to_many = models.ManyToManyField(OtherModel, related_name="ref2") ターミナルでは、次のことを行いました。 other_model = OtherModel() other_model.save() instance = SomeModel() instance.normal_value = 1 instance.readonly_value = 2 instance.foreign_key = other_model instance.save() instance.many_to_many.add(other_model) instance.save() これを次の辞書に変換したいと思います。 …

7
Djangoでクエリオブジェクトを日付範囲でフィルタリングするにはどうすればよいですか?
次のような1つのモデルにフィールドがあります。 class Sample(models.Model): date = fields.DateField(auto_now=False) 次に、日付範囲でオブジェクトをフィルタリングする必要があります。 1-Jan-2011との間の日付を持つすべてのオブジェクトをフィルタリングするにはどうすればよい31-Jan-2011ですか?

3
Django:選択肢の値を表示する
models.py: class Person(models.Model): name = models.CharField(max_length=200) CATEGORY_CHOICES = ( ('M', 'Male'), ('F', 'Female'), ) gender = models.CharField(max_length=200, choices=CATEGORY_CHOICES) to_be_listed = models.BooleanField(default=True) description = models.CharField(max_length=20000, blank=True) views.py: def index(request): latest_person_list2 = Person.objects.filter(to_be_listed=True) return object_list(request, template_name='polls/schol.html', queryset=latest_person_list, paginate_by=5) テンプレートでは、を呼び出すとperson.gender、'M'またはの'F'代わりに'Male'またはを取得し'Female'ます。 コード(/ )の代わりに値('Male'または'Female')を表示する方法'M''F'

6
Djangoがデフォルトのフォーム値を設定する
次のようなモデルがあります。 class TankJournal(models.Model): user = models.ForeignKey(User) tank = models.ForeignKey(TankProfile) ts = models.IntegerField(max_length=15) title = models.CharField(max_length=50) body = models.TextField() 上記のモデルのモデルフォームも次のとおりです。 class JournalForm(ModelForm): tank = forms.IntegerField(widget=forms.HiddenInput()) class Meta: model = TankJournal exclude = ('user','ts') そのタンク非表示フィールドのデフォルト値を設定する方法を知りたいです。これまでのところフォームを表示/保存するための関数は次のとおりです。 def addJournal(request, id=0): if not request.user.is_authenticated(): return HttpResponseRedirect('/') # checking if they own the tank from django.contrib.auth.models …

9
Djangoでスラッグを作成するにはどうすればよいですか?
SlugFieldDjangoでを作成しようとしています。 私はこの単純なモデルを作成しました: from django.db import models class Test(models.Model): q = models.CharField(max_length=30) s = models.SlugField() 次にこれを行います: >>> from mysite.books.models import Test >>> t=Test(q="aa a a a", s="b b b b") >>> t.s 'b b b b' >>> t.save() >>> t.s 'b b b b' 期待していましたb-b-b-b。

6
Django-Southを使用してモデルフィールドの名前を変更する方法
モデルの特定のフィールドの名前を変更したいと思います。 class Foo(models.Model): name = models.CharField() rel = models.ForeignKey(Bar) に変更する必要があります: class Foo(models.Model): full_name = models.CharField() odd_relation = models.ForeignKey(Bar) サウスを使用してこれを行う最も簡単な方法は何ですか?

16
プログラムで画像をDjango ImageFieldに保存する
わかりました、ほぼすべてを試しましたが、これを機能させることはできません。 ImageFieldが設定されたDjangoモデルがあります HTTP経由で画像をダウンロードするコードがあります(テスト済みで動作) 画像は直接 'upload_to'フォルダーに保存されます(upload_toはImageFieldで設定されるものです) 私がする必要があるのは、既存の画像ファイルのパスをImageFieldに関連付けることだけです。 このコードは6つの方法で記述しました。 私が実行している問題は、私が書いているすべてのコードで、次の動作になります。(1)Djangoは2番目のファイルを作成します。(2)新しいファイルの名前を変更し、ファイルの末尾に_を追加します次に、(3)基本的に空の名前が変更されたファイルを残して、データを転送しません。「upload_to」パスに残っているのは2つのファイルです。1つは実際のイメージで、もう1つはイメージの名前ですが、空です。もちろん、ImageFieldパスは、Djangoが作成しようとした空のファイルに設定されます。 それが不明確な場合のために、私は説明しようとします: ## Image generation code runs.... /Upload generated_image.jpg 4kb ## Attempt to set the ImageField path... /Upload generated_image.jpg 4kb generated_image_.jpg 0kb ImageField.Path = /Upload/generated_image_.jpg Djangoにファイルを再保存させずにこれを行うにはどうすればよいですか?私が本当に欲しいのは、この効果に対するものです... model.ImageField.path = generated_image_path ...しかし、それはうまくいきません。 そして、はい、私はのような、ここで他の質問を経てきたこの1と同様に上のDjangoのドキュメントファイル UPDATE さらにテストを行った後、この動作は、Windowsサーバー上のApacheで実行されている場合にのみ行われます。XPの「runserver」で実行している間は、この動作は実行されません。 私は困惑しています。 XPで正常に実行されるコードは次のとおりです... f = open(thumb_path, 'r') model.thumbnail = File(f) model.save()


12
Django:モデルフィールドのリストを取得しますか?
User(最終的に)から継承するクラスを定義しましたmodels.Model。このモデルに定義されているすべてのフィールドのリストを取得したい。たとえば、phone_number = CharField(max_length=20)。基本的には、Fieldクラスから継承するものをすべて取得したいと思います。 を利用してこれらを取得できると思いましたinspect.getmembers(model)が、返されるリストにはこれらのフィールドが含まれていません。Djangoはすでにクラスを取得していて、そのすべての魔法の属性を追加して、実際に定義されているものを取り除いているようです。だから...これらのフィールドを取得するにはどうすればよいですか?彼らはおそらく彼ら自身の内部目的のためにそれらを検索する機能を持っていますか?

9
djangoのクエリセットから最初のオブジェクトを取得する最速の方法は?
DjangoのNoneクエリセットから最初のオブジェクトを取得するか、何もない場合は戻りたいことがよくあります。これを行う方法はたくさんありますが、すべてうまくいきます。しかし、私はどちらが最もパフォーマンスが良いのかと思っています。 qs = MyModel.objects.filter(blah = blah) if qs.count() > 0: return qs[0] else: return None これにより、2つのデータベース呼び出しが発生しますか?それは無駄に思えます。これはもっと速いですか? qs = MyModel.objects.filter(blah = blah) if len(qs) > 0: return qs[0] else: return None 別のオプションは次のとおりです。 qs = MyModel.objects.filter(blah = blah) try: return qs[0] except IndexError: return None これにより、単一のデータベース呼び出しが生成されます。しかし、多くの場合、例外オブジェクトを作成する必要があります。これは、本当に必要なのが些細なifテストだけである場合に、非常にメモリを集中的に使用することです。 これを行うには、1回のデータベース呼び出しだけで、例外オブジェクトを使用してメモリをチャーンしないでください。

14
DjangoのORMを使用してランダムなレコードをプルする方法は?
私のサイトに掲載している絵画を表すモデルがあります。メインのWebページで、いくつか紹介します。最新の、最も頻繁にアクセスされなかったもの、最も人気のあるもの、ランダムなものです。 私はDjango 1.0.2を使用しています。 最初の3つはdjangoモデルを使用して簡単にプルできますが、最後の1つ(ランダム)は私に問題を引き起こします。私の見解では、次のようにコードを記述することができます。 number_of_records = models.Painting.objects.count() random_index = int(random.random()*number_of_records)+1 random_paint = models.Painting.get(pk = random_index) それは私が自分の考えに持ちたいもののようには見えません-これは完全にデータベース抽象化の一部であり、モデルにあるべきです。また、ここでは、削除されたレコード(すべてのレコードの数では考えられるすべてのキー値がカバーされない)と、おそらく他の多くのことを処理する必要があります。 他のオプションでどのようにしてそれを行うことができますか?

6
Django:なぜいくつかのモデルフィールドが互いに衝突するのですか?
ユーザーへの2つのリンクを含むオブジェクトを作成します。例えば: class GameClaim(models.Model): target = models.ForeignKey(User) claimer = models.ForeignKey(User) isAccepted = models.BooleanField() サーバーを実行すると、次のエラーが発生します。 フィールド 'target'のアクセサーは、関連フィールド 'User.gameclaim_set'と競合します。「ターゲット」の定義にrelated_name引数を追加します。 フィールド 'claimer'のアクセサーは、関連フィールド 'User.gameclaim_set'と競合します。「クレーマー」の定義にrelated_name引数を追加します。 エラーが発生する理由と修正方法を教えてください。

13
djangoモデルのカスタムsave()メソッドでは、新しいオブジェクトをどのように識別する必要がありますか?
新しいレコードを保存する(既存のレコードを更新しない)ときに、Djangoモデルオブジェクトのsave()メソッドで特別なアクションをトリガーしたい。 (self.id!= None)のチェックは、セルフレコードが新しく、更新されていないことを保証するために必要かつ十分ですか?これが見落とす可能性のある特別な場合はありますか?

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