Created
June 16, 2015 12:32
-
-
Save wprudencio/d0b9053340f5f96d5ee6 to your computer and use it in GitHub Desktop.
Django tutorial
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
##################### MODELS.PY ########################### | |
from django.db import models | |
class Question(models.Model): | |
question_text = models.CharField(max_length=200) | |
pub_date = models.DateTimeField('date published') | |
def __str__(self): # __unicode__ on Python 2 | |
return self.question_text | |
class Choice(models.Model): | |
question = models.ForeignKey(Question) | |
choice_text = models.CharField(max_length=200) | |
votes = models.IntegerField(default=0) | |
##################### Querys ############################ | |
>>> from polls.models import Question, Choice # Import the model classes we just wrote. | |
# No questions are in the system yet. | |
>>> Question.objects.all() | |
[] | |
# Create a new Question. | |
# Support for time zones is enabled in the default settings file, so | |
# Django expects a datetime with tzinfo for pub_date. Use timezone.now() | |
# instead of datetime.datetime.now() and it will do the right thing. | |
>>> from django.utils import timezone | |
>>> q = Question(question_text="What's new?", pub_date=timezone.now()) | |
# Save the object into the database. You have to call save() explicitly. | |
>>> q.save() | |
# Now it has an ID. Note that this might say "1L" instead of "1", depending | |
# on which database you're using. That's no biggie; it just means your | |
# database backend prefers to return integers as Python long integer | |
# objects. | |
>>> q.id | |
1 | |
# Access model field values via Python attributes. | |
>>> q.question_text | |
"What's new?" | |
>>> q.pub_date | |
datetime.datetime(2012, 2, 26, 13, 0, 0, 775217, tzinfo=<UTC>) | |
# Change values by changing the attributes, then calling save(). | |
>>> q.question_text = "What's up?" | |
>>> q.save() | |
# objects.all() displays all the questions in the database. | |
>>> Question.objects.all() | |
[<Question: Question object>] | |
######################## Admin.py ############################ | |
from django.contrib import admin | |
from .models import Question | |
class ChoiceInline(admin.StackedInline): | |
model = Choice | |
extra = 3 | |
class QuestionAdmin(admin.ModelAdmin): | |
fields = ['pub_date', 'question_text'] | |
fieldsets = [ | |
(None, {'fields': ['question_text']}), | |
('Date information', {'fields': ['pub_date']}), | |
] | |
fieldsets = [ | |
(None, {'fields': ['question_text']}), | |
('Date information', {'fields': ['pub_date'], 'classes': ['collapse']}), | |
] | |
inlines = [ChoiceInline] | |
list_display = ('question_text', 'pub_date', 'was_published_recently') | |
admin.site.register(Question, QuestionAdmin) | |
######################### |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment