-
Добрый вечер.
Я извиняюсь за вопросы, просто не смог найти доступно-понятную информацию в сети.
1.Я часто вижу записи, наподобие этой:
class SetPasswordForm(forms.Form):
def __init__(self, user, *args, **kwargs):
self.user = user
super(SetPasswordForm, self).__init__(*args, **kwargs)
Можно попросить вас описать, что делает строка?
super(SetPasswordForm, self).__init__(*args, **kwargs)
За пару месяцев, в принципе пракически разобрался с Python и Django, но суть оператора super мне спокойно спать не дает (хоть и не жена она :) ).
2. Как сделать в Джанго, что бы при python manage.py syncdb автоматически шло не только создание таблиц, но и их наполнение (например, мне нужно, что бы таблица с городами автоматически стала содержать их список). Достаточно будет ссылки, где почитать на эту тему.
Заранее благодарю за по -
1.
super(type[, object-or-type]) Return the superclass of type.
С помощью этой строки
вызывается конструктор родительского класса.super(SetPasswordForm, self).__init__(*args, **kwargs)
2. http://docs.djangoproject.com/en/dev/howto/initial-data/#providing-initial-sql-data
Рад помочь. -
вызывается конструктор родительского класса.
Вообще, это упрощение, но смысл такой, да.
http://docs.djangoproject.com/en/dev/howto/initial-data/#providing-initial-sql-data
А вот это не портируемый способ, и не очень удобный. Удобнее (на мой взгляд) оформлять все нужные данные в виде fixture с названием "initial_data".
-
Анатолий Ларин, Иван Сагалаев
Спасибо.
Но зачем из конструктора класса SetPasswordForm вызывать себя же, но только без одной передаваемой переменной, предварительно внеся ее в область видимости с помощью:
self.user = user
Непонятно... -
А, т.е. вызывается конструктор forms.Form, а не сам себя?
Понял, спасибо. -
Иван, спасибо за подсказку с fixtures, действительно удобнее.

