私はplzzを助けます....ユーザーがアップロードしたプロフィール画像と音楽ファイルをテンプレートに表示しようとしています。しかし、何らかの理由で私のコードがうまくいかない。データベースにアップロードされたファイルをdjangoのテンプレートに表示する
アプリ/ models.py
def get_upload_path(instance, filename):
return 'users/{0}/{1}'.format(instance.user.username,filename)
class UserProfile(models.Model):
user = models.OneToOneField(User)
picture=models.ImageField(upload_to='profile_images',
blank=True)
def __unicode__(self):
return self.user.username
class MusicCollection(models.Model):
user = models.ForeignKey(User, null=True)
document = models.FileField(upload_to=get_upload_path)
views.pyアプリ/ forms.py
class UserForm(forms.ModelForm):
password = forms.CharField(widget=forms.PasswordInput())
class Meta:
model = User
fields = ('username', 'email', 'password')
class UserProfileForm(forms.ModelForm):
class Meta:
model = UserProfile
fields = ('picture',)
class MusicForm(forms.ModelForm):
class Meta:
model = MusicCollection
fields = ('document',)
アプリ/
{% if lip %}
<ul>
<li> <a href="{{ lip.picture.url }}">hi</a></li>
<img src="{{ lip.picture.url }}" href="{{ lip.picture.name }}"width="600" height="400">
</ul>
{% else %}
<p>No documents.</p>
{% endif %}
<a class="navbar-brand" href="/">Index</a>
{% if lim %}
<ul>
<li><a href="{{ lim.document.url }}"></a>{{ lim.document.name }}</li>
</ul>
{% else %}
<p>No documents.</p>
{% endif %}
のwelcome.html
@login_required
def userpage(request):
lim =[]
lip =[]
c_user = request.user
music = MusicCollection.objects.filter(Q(user = c_user))
for i in music:
lim.append(i)
pictures = UserProfile.objects.filter(Q(user = c_user))
for i in pictures:
lip.append(i)
return render_to_response(request, 'welcome.html',{'lim': lim,
'lip':lip})
テンプレート/
私はモデルオブジェクトをリストにすることなくそれを渡そうとしましたが、いずれの場合もwelcome.htmlはNo Documentと表示されます。前もって感謝します。
コピー/ペーストエラーと思われるものを修正しました。それが正しいかどうか確認してください。 – Melvyn