django-korean-fields

Django field & widget for korean people registration code aka Jumin-bunho


Keywords
django, field, widget, korean, registration, jumin, saup, bupin
License
MIT
Install
pip install django-korean-fields==0.2.0

Documentation

django-korean-fields

Django์šฉ ์ฃผ๋ฏผ๋“ฑ๋ก๋ฒˆํ˜ธ, ์‚ฌ์—…์ž๋“ฑ๋ก๋ฒˆํ˜ธ, ๋ฒ•์ธ๋“ฑ๋ก๋ฒˆํ˜ธ, ํœด๋Œ€ํฐ๋ฒˆํ˜ธ ๋“ฑ ํ•œ๊ตญ์—์„œ๋งŒ ์“ฐ๋Š” ํ•„๋“œ๋“ค & ์œ„์ ฏ

๊ธฐ๋Šฅ

  • ์ฃผ๋ฏผ๋ฒˆํ˜ธ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ
  • ๋‚ ์ž ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ(์œค๋…„ ๊ฒ€์‚ฌ ํฌํ•จ)
  • ๋ถ™์—ฌ ๋„ฃ๊ธฐ ์ ๋‹นํžˆ ์ž˜๋˜๊ฒŒ
  • ์•ž๋’ค ์ฃผ๋ฏผ๋ฒˆํ˜ธ ์ด๋™
  • ์•ž์ž๋ฆฌ ๋‹ค์“ฐ๊ณ  ๋‚˜์„œ ๊ณ ์น  ๋•Œ ์งœ์ฆ๋‚˜๊ฒŒ ์ž๊พธ ๋’ท์ž๋ฆฌ๋กœ ๋‚ ๋ผ๊ฐ€์ง€ ์•Š์Œ
  • ๊ทธ ์™ธ ์•ต๊ฐ„ํ•œ๊ฑฐ ๊ทธ๋ƒฅ ๋‹ค ๋จ

TODO

  • ์ฃผ๋ฏผ๋“ฑ๋ก๋ฒˆํ˜ธ ํ•„๋“œ & ์œ„์ ฏ
  • ์‚ฌ์—…์ž๋“ฑ๋ก๋ฒˆํ˜ธ ํ•„๋“œ & ์œ„์ ฏ
  • ๋ฒ•์ธ๋“ฑ๋ก๋ฒˆํ˜ธ ํ•„๋“œ & ์œ„์ ฏ
  • ์œ„์ ฏ n๊ฐœ์˜ ๋‹ค์ค‘ ํ•„๋“œ์šฉ์œผ๋กœ ๋งŒ๋Šฅํ™”
  • ํœด๋Œ€ํฐ๋ฒˆํ˜ธ ํ•„๋“œ
  • ์‚ฌ์—…์ž๋“ฑ๋ก๋ฒˆํ˜ธ Validator
  • ๋ฒ•์ธ๋“ฑ๋ก๋ฒˆํ˜ธ Validator
  • ํœด๋Œ€ํฐ๋ฒˆํ˜ธ Validator
  • ์นด๋“œ ์œ ํšจ๊ธฐ๊ฐ„ ํ•„๋“œ
  • ์ฃผ๋ฏผ๋“ฑ๋ก์ฆ ๋ฐœ๊ธ‰์ผ์ž ํ•„๋“œ
  • ์šด์ „๋ฉดํ—ˆ ๋ฒˆํ˜ธ ํ•„๋“œ
  • ๋˜ ๋ญ ๋„ฃ์„์ง€ ์ƒ๊ฐํ•˜๊ธฐ

Demo

Demo

Example

example ํด๋” ์ฐธ์กฐ

์˜์กด์„ฑ

  • Twitter bootstrap 3 or 4
  • jQuery
  • Django (2.0+ ๋งŒ ํ…Œ์ŠคํŠธ)
  • django-bootstrap3 ๋˜๋Š” django-bootstrap4 ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์Œ(์•ˆํ•ด๋„๋˜๊ณ ...)

SETUP

  1. Install
pip install django-korean-fields
  1. INSTALL_APPS์— 'korean'์ถ”๊ฐ€
INSTALLED_APPS = [
    'korean',
    
    ...
    'my_app',
    ...
    
    'django.contrib.admin
  1. ํ…œํ”Œ๋ฆฟ ์ƒ๋‹จ์— Media ์ถ”๊ฐ€ ex>
{% extends "admin/base_site.html" %}
{% load i18n %}
{% load admin_static suit_tags %}

{% block extrastyle %}
    <link type="text/css" rel="stylesheet" href="/static/css/basic.css" />
    {{ block.super }}
    {{ form.media }}
{% endblock %}

์‚ฌ์šฉ๋ฒ•

model์—์„œ ์‚ฌ์šฉ ์‹œ

from django.db import models
from jumin.fields import JuminField

class YourEverythingModel(models.Model):

    name = models.CharField(u'์‹ค๋ช…', max_length=20)
    cell = CellPhoneField(u'๋‚ด ํœด๋Œ€ํฐ ๋ฒˆํ˜ธ')
   
    jumin = JuminField(u'๋‚ด ์ฃผ๋ฏผ๋ฒˆํ˜ธ')
    saup = SaupField(u'๋‚ด ์‚ฌ์—…์ž ๋“ฑ๋ก ๋ฒˆํ˜ธ') 
    bupin = BupinField(u'๋‚ด(?) ๋ฒ•์ธ ๋“ฑ๋ก ๋ฒˆํ˜ธ')
    
    mom_jumin = JuminField(u'์—„๋งˆ ์ฃผ๋ฏผ๋ฒˆํ˜ธ')
    dad_jumin = JuminField(u'์•„๋น  ์ฃผ๋ฏผ๋ฒˆํ˜ธ')
    uncle_jumin = JuminField(u'์‚ผ์ดŒ ์ฃผ๋ฏผ๋ฒˆํ˜ธ')
    
    your_secret = models.TextField(u'๋น„๋ฐ€์ •๋ณด')
    ...

form์—์„œ ์‚ฌ์šฉ ์‹œ

class TestForm(forms.Form):
    jumin = JuminFormField()
    cell = CelPhoneFormField()
    another = CharField(label='test', max_length=10, required=False)