モデルLanguage
があります。言語オブジェクトはDjango-admin
までAdminを作成します。彼らは適切なフラグファイルをドロップダウンメニューから選択する必要があります。Django FilePathFieldが相対パスで動作しない
問題は、プロジェクトを展開するときに選択肢がないことです。
静的ファイルをデプロイする前に収集されているので、私はこのパスを設定しようとしました:
flag = models.FilePathField(path='static/img/flags/550px',default='')
しかし、あなたが見ることができるように、それが何かを見つけることができません。
私はこれを行う場合、私は、フラグから選択することができます。
flag = models.FilePathField(path=settings.BASE_DIR+'/static/img/flags/550px',default='')
をしかし、それはそれは、絶対パスを返すためだけlanguage.flag
を呼び出して動作しません。私の心に来る唯一の解決策はpath
切断「/ホーム/ジャンゴ/ MyProjectと/」を取り除きますが、私はもしわからないプロパティを作成することです
<img src="/home/django/MyProject/static/img/flags/550px/ar.png">
:
<img src = "{{ language.flag }}">
はこれを作りますそれは良いアイデアです。
良い方法がありますか?
class Language(models.Model):
shortcut = models.CharField(max_length=40,
help_text=_('Shortcut of the language'),
unique=True)
name = models.CharField(max_length=40,
help_text=_('Name of the language'),
unique=True, verbose_name=_("Language"))
flag = models.FilePathField(path='static/img/flags/550px',default='/static/img/icons/check-icon.png')
def __str__(self):
return self.name
EDIT:
Admin.py:
from django.contrib import admin
from models import Language
admin.site.register(Language)
ないでストリッピングを行うに管理、保存モデルメソッドをオーバライドするために、1つのオプションプロパティを
他のオプションがされている使用して推測{{language.flag}}で私は/ home/django/myproject/static /を取得しますが、私は/ static/....が必要なので、何をすべきか分かりません。 –
まず、質問の不一致を修正してください。その後、管理者を追加します。私はあなたがそこに問題を抱えている可能性があると思う。 – e4c5
何が矛盾しているのですか?私は道を訂正しました。問題は、FilePathFieldを使用すると、絶対パスが設定されている場合(BASE_DIR +/static/....)フラグから選択できることです。しかし、私がフラグからこのように選択すると、{{language.flag}}は/ home/django/myproject/static /を返しますが、ちょうど/静的/ ....が必要です。 –