먼저 장고 모델을 만들어야합니다.
이 코드를 models.py
에 넣으십시오.
class Names(models.Model):
name = models.CharField(max_length = 100)
그런 다음 관리자 모델을 만들어야합니다.
이 코드를 admin.py
에 넣으십시오.
class NamesAdmin(admin.ModelAdmin):
list_display = ['name']
# whatever you want in your admin panel like filter, search and ...
admin.site.register(Names, NamesAdmin)
귀하의 요청에 부합한다고 생각합니다. 그리고 이름을 나누기 위해 모델 메서드를 저장하고 거기에있는 이름을 나눌 수 있습니다. 그러나 추가 양식을 원한다면 쉽게 장고 모델 양식을 만들 수 있습니다.
은 모델과 양식의
admin.py
,
views.py
또는
forms.py
class NamesForm(forms.ModelForm)
class Meta:
model = Names
처럼 어딘가에 코드를 넣습니다. 그래서 장고 관리 패널에 양식을 추가하려면 django admin에서 양식을 만들어야합니다. 이를 위해 뷰를 공통으로 만듭니다.
코드를 admin.py
또는 views.py
에 넣으십시오.
def spliter(req):
if req.method == 'POST':
form = NamesForm(req.POST)
if form.is_valid():
for name in form.cleaned_data['names'].split(' '):
Names(name = name).save()
return HttpResponseRedirect('') # wherever you want to redirect
return render(req, 'names.html', {'form': form})
return render(req, 'names.html', {'form': NamesForm()})
names.html
을 작성하고 아래 코드를 HTML 페이지에 삽입해야합니다.
{% extends 'admin/base_site.html' %}
{% block content %}
<!-- /admin/names/spliter/ is your url in admin panel (you can change it whatever you want) -->
<form action="/admin/names/spliter/" method="post" >{% csrf_token %}
{{ form }}
<input type="submit" value="'Send'" >
</form>
{% endblock %}
이것은 귀하의 의견이며 어디에서나 사용할 수 있습니다. 그러나 관리자 만이 페이지를 볼 수있는 권한을 갖고 싶다면 NamesAdmin
클래스도이 방법을 추가해야합니다.
def get_urls(self):
return patterns(
'',
(r'^spliter/$', self.admin_site.admin_view(spliter)) # spliter is your view
) + super(NamesAdmin, self).get_urls()
That 's It. 이게 당신을 도울 수 있기를 바랍니다.
대단히 감사합니다. – Nolik