Django form

HTML Form

Form์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•  ํฐ ํ‹€์„ ๋งŒ๋“œ๋Š”๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ์ž…๋ ฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ๋ฒˆ์— ์„œ๋ฒ„๋กœ ์ „์†กํ•˜๊ณ , ์ „์†กํ•œ ๋ฐ์ดํ„ฐ๋Š” ์›น ์„œ๋ฒ„๊ฐ€ ์ฒ˜๋ฆฌํ•ด ๊ฒฐ๊ณผ์— ๋”ฐ๋ฅธ ํŽ˜์ด์ง€๋ฅผ ๋ณด์—ฌ์ค€๋‹ค.

  • action : form ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ URL์„ ์ง€์ •ํ•œ๋‹ค.

  • enctype : ํŒŒ์ผ์„ ๋„˜๊ธธ ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

  • method : form์„ ์„œ๋ฒ„๋กœ ์ „์†กํ•˜๋Š” http ๋ฐฉ์‹์„ ์ง€์ •ํ•œ๋‹ค. (GET/POST)

  • name : form์„ ์‹๋ณ„ํ•  ์ด๋ฆ„ ์ง€์ •

  • target : action์—์„œ ์ง€์ •ํ•œ ์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์ด ํ˜„์žฌ๋‚˜ ๋‹ค๋ฅธ ์œ„์น˜์—์„œ ์—ด๋ฆฌ๋„๋ก ํ•œ๋‹ค.

  • accept-charset : form ์ „์†ก์— ์‚ฌ์šฉํ•  ๋ฌธ์ž ์ธ์ฝ”๋”ฉ ์ง€์ •

Django Form

image-20190419114550264

์žฅ๊ณ ์˜ ๊ฐ€์žฅ ํฐ ์žฅ์  ์ค‘ ํ•œ๊ฐ€์ง€ ์ด๋‹ค. Model ํด๋ž˜์Šค์™€ ์œ ์‚ฌํ•˜๊ฒŒ Form ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•œ๋‹ค.

Form ํด๋ž˜์Šค๋Š” Django Form ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์˜ ํ•ต์‹ฌ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—ญํ• ์„ ํ•œ๋‹ค.



์„ค๋ช…

form.is_valid()

ํผ์˜ ์ž…๋ ฅ๊ฐ’์ด ์˜ฌ๋ฐ”๋ฅธ์ง€ ํ™•์ธ

form.is_bound

์‚ฌ์šฉ์ž ์ž…๋ ฅ๊ฐ’์ด ์žˆ๋Š”์ง€ ํ™•์ธ

form.data

์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ํผ ๋ฐ์ดํ„ฐ

form.cleaned_data

๊ฒ€์‚ฌ๋ฅผ ํ†ต๊ณผํ•œ ํผ ๋ฐ์ดํ„ฐ

form.as_p()

<p></p> ํƒœ๊ทธ๋กœ ํผ ์ถœ๋ ฅ

form.as_ul()

<ul></ul> ํƒœ๊ทธ๋กœ ํผ ์ถœ๋ ฅ

form.as_table()

<table></table> ํƒœ๊ทธ๋กœ ํผ ์ถœ๋ ฅ

  1. ์ž…๋ ฅ ํผ ์ƒ์„ฑ : as_table() ,as_p(), as_ul() ๊ธฐ๋ณธ์ œ๊ณต

  2. ์œ ํšจ์„ฑ ๊ฒ€์ฆ(Validation)

  3. ๊ฒ€์ฆ์— ํ†ต๊ณผํ•œ ๊ฐ’์„ dictionary type์œผ๋กœ ์ œ๊ณต(cleaned_data)

Form vs Model Form

  • Form : ์ง์ ‘ ํ•„๋“œ ์ •์˜, ์œ„์ ฏ ์„ค์ •์ด ํ•„์š”ํ•˜๋‹ค

  • Model Form : ๋ชจ๋ธ๊ณผ ํ•„๋“œ๋ฅผ ์ง€์ •ํ•˜๋ฉด ๋ชจ๋ธํผ์ด ์ž๋™์œผ๋กœ field๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

    • class Meta ๋Š” ํผ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ ์–ด๋–ค ๋ชจ๋ธ์ด ์“ฐ์—ฌ์•ผํ•˜๋Š”์ง€ ์žฅ๊ณ ์— ์•Œ๋ ค์ฃผ๋Š” ๊ตฌ๋ฌธ์ด๋‹ค.

Form fields๋Š” HTML Form Fields๋ฅผ ํŒŒ์ด์ฌ ํด๋ž˜์Šคํ™” ํ•œ๊ฒƒ์ด๋‹ค.

Validation ์š”ํšจ์„ฑ ๊ฒ€์‚ฌ

๊ธฐ๋ณธ์ ์ธ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋Š” ๊ฐ’์˜ ์œ ๋ฌด์ด๋‹ค. forms.ValidationError ๋กœ ์˜ˆ์™ธ๋ฐœ์ƒ ์œ ๋ฌด๋ฅผ ์ฒ˜๋ฆฌํ•œ๋‹ค.

  1. ํ•ด๋‹น ํ•„๋“œ์˜ clean_<fieldname>() ๋ฉ”์†Œ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ด ๊ฒ€์ฆ๋œ ์ž…๋ ฅ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๊ฑฐ๋‚˜ ์˜ณ์ง€ ์•Š์€๊ฒฝ์šฐ ValidationError๋ฅผ ๋ฐœ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

_() ์—ฌ๊ธฐ์„œ _ ๋Š” gettext() , gettext_lazy() ์ด๋‹ค.

https://docs.djangoproject.com/en/2.2/topics/i18n/translation/

validators๋Š” form๋ณด๋‹ค Model์— ์ ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

๊ณต์‹๋ฌธ์„œ์—์„œ ๋” ์ž์„ธํžˆ ์‚ดํŽด๋ณผ ์ˆ˜ ์žˆ๋‹ค.

View

ํ•จ์ˆ˜ํ˜•๋ทฐ

FormView

Template

์ฐธ์กฐ

Last updated

Was this helpful?