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 답변

  • 좋아요

    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'}),
            }
    
    

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)