Printable Version of Topic
Click here to view this topic in its original format
თბილისის ფორუმი > პროგრამირება > django


Posted by: gugamaxara 9 Nov 2017, 02:08
გამარჯობათ
კოდს დავწერ და იქნებ ვინმე დამეხმაროთ ვერ გავარკვიე რაშია შეცდომა, ესეიგი რას ვცდილობ gigi.gif ინფორმაციის შეტანა მინდა ბაზაში HTML - დან

ფორმების განყოფილება:
class RegForm(forms.ModelForm):
password = forms.CharField(widget=forms.PasswordInput)

class Meta:
model = User
fields = ['username', 'password', 'information']


ვიუს განყოფილება:
class RegFormView(View):
form_class = RegForm
template_name = 'sabajo_deklarireba/registrationpage.html'

def get(self, request):
form = self.form_class(None)
return render(request, self.template_name,{'form': form})

def post(self, request):
form = self.form_class(request.POST)

if form.is_valid():
user = form.save(commit=False)

#cleaned data
username = form.cleaned_data['username']
password = form.cleaned_data['password']
information = form.cleaned_data['information']

user.set_password(password)
user.save()
else:
raise Http404("You are looser")


return render(request, self.template_name, {'form': form})

ანუ პრობლემა რა არის, is_valid() ით რო ვამოწმებ აშკარად რომელიღაც ფილდი ერრორზე გადის ან ყველა, თითო-თითოდ ვცადე ანუ ჯერ მხოლოდ username ის შეტანა ვცადე, მაგრამ მაინც else - ში შედის, სამივე ფილდი ვცადე სათითაოდ და აშკარად არცერთი არაა valid givi.gif ხოდა იქნებ ვინმემ იცოდეთ რისი ბრალია შეიძლება იყოს cry.gif
მადლობა...

Posted by: Svani91 9 Nov 2017, 03:05
gugamaxara

CODE

def post(self, request):
form = self.form_class(request.POST)


form = self.form_class(data=request.POST)

და ასევე form.errors ნახე, რამე თუ არის მანდ

წყარო: stackoverflow yes.gif

Posted by: RexxaR 9 Nov 2017, 10:20
CODE

class RegForm(forms.ModelForm):
   password = forms.CharField(widget=forms.PasswordInput)

class Meta:
   model = User
   fields = ['username', 'password', 'information']

class RegFormView(View):
   form_class = RegForm
   template_name = 'sabajo_deklarireba/registrationpage.html'

   def get(self, request):
       form = self.form_class(None)
       return render(request, self.template_name, {'form': form})

   def post(self, request):
       form = self.form_class(request.POST)
       if form.is_valid():
           user = form.save(commit=False)
           username = form.cleaned_data['username']
           password = form.cleaned_data['password']
           information = form.cleaned_data['information']
           user.set_password(password)
           user.save()
       else:
           raise Http404("You are looser")
       return render(request, self.template_name, {'form': form})




მგონი მანდ პრობლემა ამაშია >>> {'form': form}

100% დარწმუნებული არ ვარ, მეც გუშინ დავიწყე ჯანგოს სწავლა მარა biggrin.gif

ეგ რენდერის ფუნქცია იღებს კონტექსტს სადაც შენ Dict-ს აწვდი, რომელიც სავარაუდოდ სხვანაირად უნდა იყოს დაფორმატებული.

ასევე რაც წინა პოსტში გითხრა ეგეც სწორია data=request.POST აუცილებელია

Posted by: gugamaxara 16 Nov 2017, 12:06
მოკლედ ვერ გავაკეთე რა, forms.error ით ვნახე და This field is required ამას მიწერს იქნებ ვინმემ მიშველოთ sad.gif

Posted by: gogua 16 Nov 2017, 12:23
QUOTE (gugamaxara @ 16 Nov 2017, 12:06 )
მოკლედ ვერ გავაკეთე რა, forms.error ით ვნახე და This field is required ამას მიწერს იქნებ ვინმემ მიშველოთ  sad.gif

სალამი,

User მოდლს არ აქვს information ველი, რაც ფორმაში გიწერია თან required გიწერია და მოდელი დადე სადმე ოვერრაიდი თუ გაქვს გაკეთებული ან წაშალე ეგ ველი
ან დალოგე POST მეთოდში რა მოგდის, ასე ზეპირად როგორ დაგეხმაროთ

Posted by: gugamaxara 16 Nov 2017, 12:59
gogua
გამარჯობა
ვიპოვე შეცდომა
http://www.picz.ge
აქ fields - ში username ვწერდი username1 ის მაგივრად, მაგრამ ახლა სხვა შეცდომაა, თითქოს ინახავს ინფორმაციას, მაგრამ არაფერი არ ჩანს ბაზაში
http://www.picz.ge
gugamaxara თვითონ შელიდან მაქვს დამატებული და დანარჩენები input - დან დამატებულები, რომლებიც არ ჩანს...
* * *
გავასწორე, ბაზის field - ის სახელი არ ემთხვეოდა form - ის field - ის სახელს

Posted by: gogua 16 Nov 2017, 14:28
მშვენიერი თუ გაასწორე

Posted by: G1oba1 16 Nov 2017, 18:23
გამარჯობათ...

ასზრზე არ ვარ ამ ჯანგოსი მარა შემოვიხედე ვიფიქრე დავეხმარო იქნებათქვა ))
ახლა ინტერესი გამიჩნდა პირიქით და თქვენი დახმარება მინდა
თუ მინდა რომ კლასს სხვადასხვა კონსტრუქტორი ქონდეს ვერა??


QUOTE
class RegForm(forms.ModelForm):


Posted by: gogua 16 Nov 2017, 20:13
QUOTE (G1oba1 @ 16 Nov 2017, 18:23 )
გამარჯობათ...

ასზრზე არ ვარ ამ ჯანგოსი მარა შემოვიხედე ვიფიქრე დავეხმარო იქნებათქვა ))
ახლა ინტერესი გამიჩნდა პირიქით და თქვენი დახმარება მინდა
თუ მინდა რომ კლასს სხვადასხვა კონსტრუქტორი ქონდეს ვერა??


QUOTE
class RegForm(forms.ModelForm):

პითონთან რამდენად კარგად ხარ? სხვადასხვა კონსტრუქტორი რას ნიშნავს? სხვა კლასის ექსტენდები?

Posted by: G1oba1 17 Nov 2017, 02:53
gogua
QUOTE
სხვადასხვა კონსტრუქტორი რას ნიშნავს?

CODE

class  A{
    int b;
   String d;

     public A(){
        this.b = 0;
       this.d = "";
    }
    public A(int b){
        this.b = b;
       this.d = "";
    }

    public A(String d){
       this.b = 0;
       this.d = d;
    }
}

ამაზე ვამბობ ეს ჯავაა
არა პითონი არ ვიცი

Posted by: Svani91 17 Nov 2017, 03:00
G1oba1

რამდენადაც მე ვიცი, არ არის პითონში ფუნქციების კლასიკური overload

ალტერნატივაა არგუმენტები default მნიშვნელობებით

CODE
def __init__(self, i=None):


ან variable-length argument list

CODE
def __init__(self, *args):

Posted by: Lilith 17 Nov 2017, 07:10
Svani91
QUOTE
რამდენადაც მე ვიცი, არ არის პითონში ფუნქციების კლასიკური overload

მართალი ბრძანდებით yes.gif
QUOTE
ალტერნატივაა არგუმენტები default მნიშვნელობებით

QUOTE
ან variable-length argument list

ან, რაც ყველაზე ახლოსაა overload-თან:
CODE
class A:
   def __init__(self, **kwargs):
       self.b = kwargs['b'] if 'b' in kwargs else 0
       self.d = kwargs['d'] if 'd' in kwargs else ''
       pass


a_obj = A()
b_obj = A(b=1)
c_obj = A(d='abc')
d_obj = A(b=1, d='abc')

print('Default: ', a_obj.__dict__)
print('b assigned: ', b_obj.__dict__)
print('d assigned: ', c_obj.__dict__)
print('b and d assigned: ', d_obj.__dict__)

smile.gif

Posted by: G1oba1 17 Nov 2017, 21:07
Svani91
Lilith
რა უბედური სინტაქსი აქვს...

Posted by: Svani91 17 Nov 2017, 23:19
Lilith

**kwargs - სა და *args - ს შორის არ ვიცოდი რა სხვაობა იყო up.gif

კარგად მაქვს სასწავლი ჯერ კიდევ საწყისები

Posted by: Lilith 17 Nov 2017, 23:58
Svani91
QUOTE
**kwargs - სა და *args - ს შორის არ ვიცოდი რა სხვაობა იყო  

*args - მოიცავს ყველა არგუმენტს რომელიც გადაეცემა ფუნქციას და აქვს list-ის სახე. **kwargs - არის იგივე, ოღონდ dictionary.

მაგალითად:
CODE
def test(*args, **kwargs):
   print('Args: ', args)
   print('KWArgs: ', kwargs)
   pass

test(1, 2, 3, a='a', b='b')


დაბეჭდავს შემდეგს:
CODE
Args:  (1, 2, 3)
KWArgs:  {'a': 'a', 'b': 'b'}


smile.gif

G1oba1
QUOTE
რა უბედური სინტაქსი აქვს...

მუღამს თუ დაუჭერ შეგიყვარდება... love.gif biggrin.gif

Posted by: აბიტურიენტი 18 Nov 2017, 00:31
QUOTE
რა უბედური სინტაქსი აქვს...

სადააქვს პითონს სინტაქსი biggrin.gif ფსევდოკოდია ფაქტიურად user.gif

Posted by: HedPe 18 Nov 2017, 13:35
gugamaxara
გამარჯობა,
CreateView ცადე.
https://docs.djangoproject.com/en/1.11/ref/class-based-views/generic-editing/#django.views.generic.edit.CreateView


Posted by: gugamaxara 18 Nov 2017, 15:08
HedPe
გამარჯობა, ეგ კი გავასწორე, მაგრამ ახლა სხვა რაღაცაში მინდა დახმარება biggrin.gif
ესეიგი ბაზაში მინდა შევინახო HTML input და შემოტანილი თარიღი, HTML - ში input აღებული მაქვს როგორც 'datetime-local' ტიპი
http://www.picz.ge ასეთი სახით
რაც შეეხება ბაზაში ამის შესაბამისი ფილდი მაქვს ამ ტიპის:
http://www.picz.ge
ხოდა რა პრობლემა მაქვს ეხლა, აშკარად რომ ვავსებ HTML - ში ამ თარიღს, არ ინახავს ბაზაში, და ფორმების ერრორებში მიწერს This field is required
აქედან გამომდინარე რა უნდა გკითხოთ givi.gif models.DateTimeField(auto_now_add=True) ეს სწორად მაქვს აღნიშნული თუ ბაზაში თარიღის შესანახად სხვას იყენებენ?
მადლობა

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)