작성
·
197
0
수업외적인 질문을 해도될지 모르겠지만 질문드려봅니다
https://pypi.org/project/django-awesome-avatar/
여기에있는 아바타를 적용시키려고 합니다
근데 제가 부족한것인지 적용이 잘안됩니다...
models.py의 comment에 avatar를 적용시켜보고
class Comment(models.Model):
post = models.ForeignKey(Post, on_delete=models.CASCADE) # post하나에 여러댓글 달 수 있다
text = MarkdownxField()
user = models.ForeignKey(User, related_name='profile', on_delete=models.CASCADE, default=1)
avatar = AvatarField(upload_to='avatars', width=100, height=100, default='C:\\Users\\dhrms\\OneDrive\\바탕 화면\\GitHub\\Web-django-\\_media\\blog\\2020\\08\\01')
def get_markdown_content(self):
return markdown(self.text)
def get_absolute_url(self):
return self.post.get_absolute_url() + '#comment-id-{}'.format(self.pk)
views.py에
class AvatarChangeForm(forms.ModelForm):
class Meta:
model = Comment
fields = ['avatar']
def change_avatar(request):
if request.method == 'POST':
form = AvatarChangeForm(request.POST, request.FILES,
instance=request.user.profile)
if form.is_valid():
form.save()
return HttpResponseRedirect('/profile/')
else:
form = AvatarChangeForm(instance=request.user.profile)
return render(request, 'template.html', {'form': form})
를 넣고 해보았는데 migrate까지는 해결했으나 블로그에 들어가보니 적용이 안되있습니다
html도 바꿔야할거같은데 어떻게할지 모르겠고 ㅠ
그래서 원래했던것을 지우고 코멘트 클래스를 원래대로 돌리고
도큐멘테이션에서 하라는대로 해보았는데
models.py
class Profile(models.Model):
user = OneToOneField(User, related_name='profile', default=1, on_delete=models.CASCADE)
avatar = AvatarField(upload_to='avatars', width=100, height=100)
views.py
class AvatarChangeForm(forms.ModelForm):
class Meta:
model = Profile
fields = ['avatar']
def change_avatar(request):
if request.method == 'POST':
form = AvatarChangeForm(request.POST, request.FILES,
instance=request.user.profile)
if form.is_valid():
form.save()
return HttpResponseRedirect('/profile/')
else:
form = AvatarChangeForm(instance=request.user.profile)
return render(request, 'template.html', {'form': form})
이제는 migrate를 하면 blog_profile이라는 테이블이 없다는 에러가 뜹니다
db관련된건 아직 자세히 몰라서...
혹시 어떻게해야할지 방향을 제시해줄수 있으신가요
아니면 지금 이걸하는게 시기상조일까요?
답변