python - How can i save/insert default value into table after if request == POST? -
python - How can i save/insert default value into table after if request == POST? -
users table:
mysql> describe blog_users; +--------------------+--------------+------+-----+---------+----------------+ | field | type | null | key | default | | +--------------------+--------------+------+-----+---------+----------------+ | id | int(11) | no | pri | null | auto_increment | | username | varchar(255) | no | | null | | | slug | varchar(255) | no | | null | | | password | varchar(300) | no | | null | | | password_token | varchar(300) | no | | null | | | email | varchar(255) | no | | null | | | email_verified | tinyint(1) | no | | null | | | email_token | varchar(255) | no | | null | | | email_token_expiry | datetime | no | | null | | | tos | tinyint(1) | no | | null | | | active | tinyint(1) | no | | null | | | last_login | datetime | no | | null | | | last_action | datetime | no | | null | | | is_admin | tinyint(1) | no | | null | | | role | varchar(255) | no | | null | | | created | datetime | no | | null | | | modified | datetime | no | | null | | +--------------------+--------------+------+-----+---------+----------------+ 17 rows in set (0.00 sec)
the form:
<form action="/dosave" method="post">{% csrf_token %} <label for="id_username">username:</label> {{ user.username }} <label for="id_password">password:</label> {{ user.password }} <label for="id_email">email:</label> {{ user.email }} <input type=submit value="submit" /> </form>
i can username, password, email input fields. other column value default value. how can save default values column during saving?
model:
class users(models.model): username = models.charfield(max_length=255) slug = models.charfield(max_length=255) password = models.charfield(max_length=300) password_token = models.charfield(max_length=300) email = models.charfield(max_length=255) email_verified = models.booleanfield() email_token = models.charfield(max_length=255) email_token_expiry = models.datetimefield(auto_now_add=true) tos = models.booleanfield() active = models.booleanfield() last_login = models.datetimefield(auto_now_add=true) last_action = models.datetimefield(auto_now_add=true) is_admin = models.booleanfield() role = models.charfield(max_length=255) created = models.datetimefield(auto_now_add=true) modified = models.datetimefield(auto_now_add=true) def __unicode__(self): homecoming self.username class usersmodelform(forms.modelform): class meta: model = users
it seems have used custom user model
because django users
not have slug field. (please tell me if wrong)
since have created own users table, whatever info need come in can done in view itself. in views can if request.method == 'post':
# extract post values username = request.post.get('username ', false) . . . # create new user object user = user() # fill post request info user.username = username . . # fill default values user.slug = 'what ever want' . . . # save object user.save()
first info post request then create new user object then add together info have received fro post request and add together default values want add together default values don't forget save in end. however if want other fields displayed in form has been pointed out in other reply can utilize 'fieldsor '
exclude` in model form
class userform(modelform): class meta: model = user fields = ('username','password','email','slug')
and if want exclude few fields , show rest can utilize exclude
as
class userform(modelform): class meta: model = user exclude = ('role',)
hope helps
python database django model save
Comments
Post a Comment