Django를 활용해서 form을 추가할때, input에 placeholder를 적용하는 방법.
조회수 2533회
장고걸스 튜토리얼을 통해서 혼자 공부하던 중인데요, 아래 첨부한 title과 text의 input/textarea에 placeholder를 적용하는 방법이 궁금합니다. 작성중인 코드를 공유하면 아래와 같아요.
ps: self.fields['name'].widget.attrs.update({'class': 'special'})
를 적용하라고 하던데, 기본적인 이해가 낮다보니, 쉽지 않네요.
forms.py
from django import forms
from .models import Post
class PostForm(forms.ModelForm):
class Meta:
model = Post
fields = ('title', 'text')
models.py
from django.db import models
from django.utils import timezone
class Post(models.Model):
author = models.ForeignKey('auth.User', on_delete=models.CASCADE)
title = models.CharField(max_length=200)
text = models.TextField()
created_date = models.DateTimeField(
default=timezone.now)
published_date = models.DateTimeField(
blank=True, null=True)
def publish(self):
self.published_date = timezone.now()
self.save()
def __str__(self):
return self.title
1 답변
-
제가 첨부한 stackoverflow의 다른 답변들을 천천히 살펴보고 하나하나 적용해보다가 해결했습니다. 막상 안될때는 마음이 급해서 안읽히던거를 하루 지나고 다시해보니 그냥 되네요. ㅎㅎ 아래의 코드에 다음의 코드를 추가하니 되더라구요. :-) 감사합니다.
widgets = { 'title': forms.TextInput(attrs={'placeholder': 'Name'}), 'text': forms.Textarea( attrs={'placeholder': 'Enter description here'}), }
forms.py 코드 전문.
from django import forms from .models import Post class PostForm(forms.ModelForm): class Meta: model = Post fields = ('title', 'text') widgets = { 'title': forms.TextInput(attrs={'placeholder': 'Name'}), 'text': forms.Textarea( attrs={'placeholder': 'Enter description here'}), }
댓글 입력