2

そのフィールドにnull値がある場合、djangoモデルフィールドに異なる設定値を返す方法はありますか?

プロフィール画像 (image_url) を持つユーザーがいます。持っていないユーザーには、「なし」ではなく、デフォルトのアバターなしの URL を返したいと思います。

class User(models.Model):
    name = models.CharField(max_length=800)
    image_url = models.URLField(max_length=2000, blank=True, null=True)
4

4 に答える 4

4

最も簡単な方法は、モデルに追加のプロパティを追加することです。

@property
def image_url_with_default(self):
    return self.image_url or whatever_the_default_url_is
于 2013-10-27T21:00:01.447 に答える
2

@paulo-scardineが提案したように、実際に使用したいときに条件を追加するだけです.

@property
def avatar(self):
    return self.image_url or settings.DEFAULT_AVATAR_URL
于 2013-10-27T21:13:40.887 に答える
0

URLField でデフォルトのオプションを使用してみましたか?

次のようなことができます:

image_url = models.URLField(max_length=2000, blank=True, null=True,  default='http://misyte.com/default-image.jpg')

テストしていません... djangoにもImageFieldがあります..おそらくそれも確認できます

お役に立てれば

于 2013-10-27T20:58:54.493 に答える
0

ああ、私... ユーザーが入力した URL... 危なそうです。

class User(models.Model):
    name = models.CharField(max_length=800)
    image = models.ImageField(upload_to='avatars', blank=True, null=True)

    def avatar(self):
        if self.image: return self.image.url
        return '/path/to/default/avatar.png'

画像を自分の側に保存する場合、ヌードの画像を分析するために、少なくとも「ヌード」などを実行できます。

于 2013-10-27T21:00:30.650 に答える