Django's ORMのimagefieldのデフォルト画像 -- django フィールド と django-orm フィールド 関連 問題

Default image for ImageField in Django's ORM












35
vote

問題

日本語

私は私のモデルにプロフィール写真を保存するために<コード> /etc/kubernetes/pki/ca.crt0 を使っています。

画像が定義されていない場合はデフォルト画像を返すように設定しますか?

英語

I'm using an ImageField to store profile pictures on my model.

How do I set it to return a default image if no image is defined?

</div
     

回答リスト

42
 
vote

私はこれを試していませんが、あなたがあなたのフィールドのデフォルトとしてそれを設定することができるだけで私は比較的確実です。

<事前> <コード> --kubelet-client-key16

編集:Stupid StackOverflowは他の人の答えについてコメントさせませんが、その古いスニペットはあなたが望むものではありません。 django-imagekit は素晴らしいイメージのサイズ変更や操作のものがあるため非常に簡単かつきれいに。

 

I haven't tried this, but I'm relatively sure you can just set it as a default in your field.

pic = models.ImageField(upload_to='blah', default='path/to/my/default/image.jpg') 

EDIT: Stupid StackOverflow won't let me comment on other people's answers, but that old snippet is not what you want. I highly recommend django-imagekit because it does tons of great image resizing and manipulation stuff very easily and cleanly.

</div
 
 
     
     
13
 
vote
Models.py の

<事前> <コード> /etc/kubernetes/manifests/kube-apiserver.yaml7

settings.pyに追加する:

<事前> <コード> /etc/kubernetes/manifests/kube-apiserver.yaml8

今、 手動で、メディアフォルダに「デフォルト」という名前の画像を追加します。

 

In models.py

image = models.ImageField(upload_to='profile_pic', default='default.jpg') 

In settings.py add this:

MEDIA_ROOT = os.path.join(BASE_DIR, 'media') MEDIA_URL = '/media/' 

Now, Manually, add an image with a name ''default' into the media folder.

</div
 
 
11
 
vote

あなたはあなたのモデル定義内で関数を理論的に使うことができます。しかし、私はこれが良い練習であるかどうかわからない:

<事前> <コード> class Image(model.Models): image = .... def getImage(self): if not self.image: # depending on your template return default_path or default_image_object

テンプレート内で

<事前> <コード> <img src="img.getImage" />

これはあなたに将来のための柔軟性を大いに与えます...

大成功を収めたサムネイルの生成のためのSORLを使っています

 

You could theoretically also use a function within your model definition. But I dont know whether this is good practice:

class Image(model.Models):     image = ....      def getImage(self):         if not self.image:             # depending on your template             return default_path or default_image_object 

and then within a template

   <img src="img.getImage" /> 

This gives you a great deal of flexibility for the future...

I'm using sorl for thumbnails generation with great success

</div
 
 
   
   
5
 
vote

あなたの画像フィールド

<事前> <コード> field = models.ImageField(upload_to='xyz',default='default.jpg')

注:パスはmedia_rootの内側にあるべきです。

 

In your image field

field = models.ImageField(upload_to='xyz',default='default.jpg') 

Note : path should be inside MEDIA_ROOT.

</div
 
 
3
 
vote

あなたの見解でこれを試すことができます:

<事前> <コード> {% ifequal object.image None %} <img src="DEFAULT_IMAGE" /> {% else %} display image {% endifequal %}
 

you could try this in your view:

{% ifequal object.image None %}     <img src="DEFAULT_IMAGE" /> {% else %}     display image {% endifequal %} 
</div
 
 
   
   
0
 
vote

「デフォルト」パラメータで初期値を指定できます。 すでに画像があるとデフォルトに設定したい場合(削除するのではなく)、このようなものを試すことができます。

<事前> <コード> DEFAULT = 'img/default.jpg' class Example(models.Model): image = models.ImageField(default=DEFAULT) def set_image_to_default(self): self.image.delete(save=False) # delete old image file self.image = DEFAULT self.save()

その後、デフォルトを希望する場合は、 image.delete() の代わりに set_image_to_default() を使用できます。

 

You can provide an initial value with the 'default' parameter. If there is already an image and you want to set it to default (instead of deleting it), you can try something like this:

DEFAULT = 'img/default.jpg'  class Example(models.Model):     image = models.ImageField(default=DEFAULT)      def set_image_to_default(self):         self.image.delete(save=False)  # delete old image file         self.image = DEFAULT         self.save() 

Then you can use set_image_to_default() instead of image.delete(), if you prefer the default.

</div
 
 

関連する質問

4  重複をリストにマージしますか? - 質問はそれがそう思われるよりも複雑です  ( Merging duplicates in a list question is more complex than it seems ) 
だから私はDB内のエントリの膨大なリストを持っています( mysql ) 私は私のWebアプリケーションの作成に python と django を使用しています。 これは私が使用している基本的なDjangoモデルです: <事前> <コード> class DJ...

0  なぜ「admin.e003)の値は 'Raw_id_fields [n]'の値がForeignKeyまたはManyTomanyfieldでなければなりません。 Djangoアプリのエラー?  ( Why i am getting an admin e003 the value of raw id fieldsn must be a fore ) 
スキーマの移行をしたいだけで、モデルをモデル化してModelAdminに追加します。 <事前> <コード> class MyModel(models.Model): some_field = models.ForeignKey(SomeModel) ...

21  Django:リスト内のすべてのアイテムにマッチングしているMantomanyフィルタ  ( Django manytomany filter matching on all items in a list ) 
私はそのような本モデルを持っています: <事前> <コード> class Book(models.Model): authors = models.ManyToManyField(Author, ...) ... 著者が特定の著者のセッ...

0  Django Ormが最も発売されています  ( Django orm most occuring value ) 
基本的に私はユーザーの活動を追跡しているモデルを持っています。ユーザーがアクセスしたページが何であるかを知りたい MOST. これは私のモジュールです。 <事前> <コード> class Visitor(models.Model): session...

0  タイプ別にカウントをグループ化するときに使用するSQL Paradigm?  ( Which sql paradigm to use when grouping counts by type ) 
ピザ店からのデータを持つデータベースがあるとしましょう。 customer および orders を介して、顧客とその注文を追跡します。 <コード> orders は、どの顧客に属するどちらの注文がどの顧客に属しているかを簡単に確認できるように、<コード> ...

1  Django - Transaction.atomic()コンテキストマネージャ - クプレブルをキャッチ  ( Django with transaction atomic context manager catch exceptions ) 
transation.commit() Context Managerを使用してデータベースエラーを記録しようとしています。 これはコードチャンクです: <事前> <コード> def _process_batch(_lower_limit, _upper...

324  Django QuerySetで実行する方法や状態は?  ( How to perform or condition in django queryset ) 
このSQLクエリと同等のDjangoクエリを書き込みたい: <事前> <コード> SELECT * from user where income >= 5000 or income is NULL. Djangoクエリセットフィルタを構築する方法? <事...

1  Djangoでフィルタを使う方法  ( How to use filter in django ) 
クラスステータス(Models.model): maneedid = models.integerfield() value = models.integerField() STATUS_MSG = MODELS.CHARFIFE(MA...

0  django select_for_updateはまだ存在しない場合  ( Django select for update when row doesnt exist yet ) 
Djangoの select_for_update を使用して、存在しない行をロックしてまだ存在しないをロックすると、その行を作成してからモデルを保存しますか? ...

0  DjangoのManyTomanyfield値を操作/編成する  ( Manipulating organizing manytomanyfield values in django ) 
私たちが簡単にユーザーモデルにそれを追加できるように、Djangoの次の/フォロワーモデルの ManyToManyFields の多くの人が登録されています。 あなたはどのようにして、あなたが簡単にできる別のアプリではなく、 Foo0 を使用して、 Foo0 ...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有