Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Авторизация с заданными логином и паролем. [RSS Feed]

#1 Апрель 5, 2013 17:18:34

Solidkiller
Зарегистрирован: 2013-03-11
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Авторизация с заданными логином и паролем.

Добрый день.
Начал изучать django и появилась проблема.
Хочется подключить авторизацию с заранее заданными логином и паролем. Собственно входить будет через html страничку. Форма описана ниже. Я читал документацию и не совсем понял, что нужно прописать в views и models?
Буду благодарен за помощь!

<div>
    <div >
        <h1>Форма авторизации</h1>
            <form action='.' method='post'>
                <input type="hidden" name="next" value="{{ next|escape }}" />
                <div>
                    <label for="username">
                        <strong>Логин</strong>
                    </label>
                    <div>
                        <input type="text" name="username" value=""/>
                    </div>
                </div>
                <div>
                    <label for="password">
                        <strong>Пароль</strong>
                    </label>
                    <div>
                        <input type="password" name="password" value=""/>
                    </div>
                </div>
                <div>
                    <div>
                    <input type="submit" value="Войти"/>
                </div>
                </div>
            </form>
    </div>
</div>

Офлайн

#2 Апрель 6, 2013 01:17:54

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Авторизация с заданными логином и паролем.

В доках хорошо описанная глава по этому поводу с пояснительными примерами, в частности раздел Authentication in Web requests, давайте вы внимательно еще раз ее прочитаете. Если с английским не в ладах, то попробуйте найти раздел Аутентификации на djbook.ru.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Апрель 10, 2013 23:38:49

Solidkiller
Зарегистрирован: 2013-03-11
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Авторизация с заданными логином и паролем.

JOHN_16,
Пока разбираюсь с формами… Уже который день бьюсь… Собственно каким-то образом хочется с шаблона записывать данные игроков в БД…. Но при нажатии кнопки форма сбрасывается и ничего не добавляется…

models

from django.db import models
from django.contrib import admin
import math
# Create your models here.
class MainPage(models.Model):
pass

class Player(models.Model):
""" """
second_name = models.CharField(max_length= 50, verbose_name=u"Фамилия")
first_name = models.CharField(max_length= 30, verbose_name=u"Имя")
base_elo = models.IntegerField(verbose_name=u"ELO")

def full_name(self):
return "%s %s" % (self.second_name, self.first_name)

def __unicode__(self):
return unicode(self.full_name())

views
from models import MainPage
from models import Player
from annoying.decorators import render_to
from django.shortcuts import render_to_response
from django.contrib.auth.models import User
from django.http import HttpResponse
from django import forms
from chess_core.forms import *
from chess_core.models import *


@render_to("player_list.html")
def player_list(request):
player = Player.objects.all()
return {"player": player}

if request.method == 'POST':
form = PlayerForm(request.POST)
if form.is_vaild():
member = form.save()
member.save()
return HttpResponseRedirect('/player_list/')

return render_to_response('player_list.html', {
'form': form,
})

forms

from django.forms import ModelForm
from chess_core import models

class PlayerForm(ModelForm):
class Meta:
model = Player
шаблон

	<form action="" method="post" >{% csrf_token %}
<div>
<legend>
Добавить игрока:
</legend>
{{ form.PlayerForm }}
</div>
<input type="submit" value="Добавить игрока" class="button_add"/>
</form>
Вот мне очень кажется, что проблема скрывается в шаблоне. Я уже все варианты пробовал….
Или возможно я что-то не импортирую куда-то или не дописываю…

Офлайн

#4 Апрель 11, 2013 00:11:51

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Авторизация с заданными логином и паролем.

Solidkiller
гадание на кофейной гуще происходит. Вероятно все банально просто: форма не валидна вот вас и выкидывает на ту же самую страницу, а не форма сбрасывается. Смотрте логи,а лучше отладчиком посомтрите как вьюха выполняется

Solidkiller
if request.method == ‘POST’:
Общепринятый метод проверки:
if request.POST



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#5 Апрель 11, 2013 00:21:39

Solidkiller
Зарегистрирован: 2013-03-11
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Авторизация с заданными логином и паролем.

JOHN_16
Отладчик, это что-то вроде pycharm например?

Кстати в предыдущем шаблоне полей для добавления имя фамилии и рейтинга нет… Хотя, как я читал, должны быть…

<form action="" method="post" >{% csrf_token %}
<div>
<legend>
Добавить игрока:
</legend>
{{ form.PlayerForm }}
<input type="text" size="20" /> <small>Фамилия</small><br />
<input type="text" size="20" /> <small>Имя</small><br />
<input type="integer" size="20" /> <small>Рейтинг ELO</small><br />
</div>
<input type="submit" value="Добавить игрока" class="button_add"/>
</form>

Я так понимаю данный вариант работать не будет, от слова вообще?
Вот что выдает pycharm, когда я пытаюсь запустить views.py:
C:\Python27\python.exe CProject/wg_chess/chess_core/views.py
Traceback (most recent call last):
File “CProject/wg_chess/chess_core/views.py”, line 2, in <module>
from models import MainPage
File “C:\Project\wg_chess\chess_core\models.py”, line 2, in <module>
from django.db import models
File “C:\Python27\lib\site-packages\django\db\__init__.py”, line 11, in <module>
if DEFAULT_DB_ALIAS not in settings.DATABASES:
File “C:\Python27\lib\site-packages\django\utils\functional.py”, line 184, in inner
self._setup()
File “C:\Python27\lib\site-packages\django\conf\__init__.py”, line 40, in _setup
raise ImportError(“Settings cannot be imported, because environment variable %s is undefined.” % ENVIRONMENT_VARIABLE)
ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined.

Кстати м.б. все это происходит из-за того, что я все это делаю на windows… как вариант..

Отредактировано Solidkiller (Апрель 11, 2013 01:10:35)

Офлайн

#6 Апрель 11, 2013 04:37:39

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Авторизация с заданными логином и паролем.

Solidkiller
pyCharm это IDE, отладчик это модуль pdb

import pdb
нет дело не в Windows и не в pyCharm, а в вас и только в вас. Вам книги надо читать, ибо то что вы пишете выдает в вас отсутствие понимаия Django на базовом уровне (не знание про отладчик тож сомнительная черта программиста).

Отложите ваш проект и посвятите пару дней прочтению книги по Django. Это мое имхо, ибо я , напримере самого себя, верю в то что множество проблем можно решить самому, просто надо руки тянуть не к написанию N-ого типичного сообщения на форумах,а к поиску информации.

ну а по делу, вы в шаблоне зачем пишите {{ form.PlayerForm }} и сразу же вручную определяете поля формы?
Solidkiller
member = form.save()
member.save()
Вы два раза пытаетесь сохранить ? это ритрический вопрос.

Да и вьюху напишите хотя бы так:
def player_list(request):
	player = Player.objects.all()
	return {"player":  player}
	if request.POST:
		form = PlayerForm(request.POST)
		if form.is_vaild():
                        print u'Я форма и я валидна'
			member = form.save()
                else:
                    print u'Я форма и во мне есть ошибки'
		return HttpResponseRedirect('/player_list/')
	return render_to_response('player_list.html', {
		'form': form,
	})
Да и посомтрите на то что у формы есть методы обрабатывающие ошибки. В доках все есть.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#7 Апрель 11, 2013 10:41:50

Solidkiller
Зарегистрирован: 2013-03-11
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Авторизация с заданными логином и паролем.

JOHN_16, да это понятно, что вообще нет никакого опыта да и читать именно по django надо что-то…. Я знаю только Django Book на djbook.ru которая написана для древней версии django. Хотя я думаю прочитать эту книгу, а потом наверх полностью всю документацию к 1.4, будет нормально.
Про отлавливания ошибок, я тоже знаю..

Отредактировано Solidkiller (Апрель 11, 2013 10:55:10)

Офлайн

#8 Апрель 11, 2013 11:47:47

inoks
От: Russia
Зарегистрирован: 2012-12-11
Сообщения: 343
Репутация: +  35  -
Профиль   Адрес электронной почты  

Авторизация с заданными логином и паролем.

>а потом наверх полностью всю документацию к 1.4, будет нормально
Актуальная версия уже 1.5.1

Офлайн

#9 Апрель 11, 2013 11:59:34

Solidkiller
Зарегистрирован: 2013-03-11
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Авторизация с заданными логином и паролем.

inoks, ну значит 1.5.1 Может еще что-то есть, что можно почитать?

Офлайн

#10 Апрель 11, 2013 13:18:36

inoks
От: Russia
Зарегистрирован: 2012-12-11
Сообщения: 343
Репутация: +  35  -
Профиль   Адрес электронной почты  

Авторизация с заданными логином и паролем.

По джанге могу посоветовать только книжку Beginning Django E-Commerce.
она старая, но суть раскрывается хорошо и много примеров.

Офлайн

  • Начало
  • » Django
  • » Авторизация с заданными логином и паролем.[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version