Модель Джанго с грубыми операциями - PullRequest
0 голосов
/ 21 июня 2011

Работаю с Django и застрял на том, как сделать мою модель грубой, используя Models.Manager.Я работаю с полями: почтовый индекс, город, широта, долгота, координаты и текущее время.Я хотел бы добавить новую запись с почтовым индексом, городом, широтой, долготой и текущим временем.Также хотелось бы обновить существующую запись по почтовому индексу.Наконец, получить запись по почтовому индексу, возвращающему город, и получить запись по почтовому индексу, возвращающему город, штат и координаты (широта и долгота).

from django.db import models
from datetime import datetime

class Name(models.Model):
    zipcode     = models.CharField(max_length=5, primary=True, blank=False)
    city        = models.CharField(max_length=50, blank=False)
    state       = models.CharField(max_length=2, blank=False)
    latitue     = models.CharField(max_length=15, blank=False)
    longitue    = models.CharField(max_length=15, blank=False)
    curr_time   = models.datetime(default=datetime.now, blank=False)

Ответы [ 2 ]

3 голосов
/ 21 июня 2011

Вы должны прочитать документацию по django еще https://docs.djangoproject.com/en/1.3/. В руководстве есть часть, посвященная сохранению и обновлению моделей.Однако, в ответ на ваш вопрос ...

from models import Name
from datetime import datetime

# create a new model
name = Name(city='New York', state='NY')
# fields can also be set this way
name.zipcode = '10027'
# save the model to the database
name.save()
# find a model by zipcode
name = Name.objects.filter(zipcode='10027')
# modify it
name.curr_time = datetime.now()
# save it
name.save()

Полегче, верно?

0 голосов
/ 21 июня 2011

Для вашего поля curr_time вы можете использовать:

curr_time = models.DateField(auto_now=True)
# or auto_now_add=True, if you want set this field only at the creation.

Подробнее здесь: https://docs.djangoproject.com/en/dev/ref/models/fields/#datefield

...