Доступ к полям в модели после процедуры в Google App Engine - PullRequest
0 голосов
/ 20 мая 2011

У меня есть сообщение (self), и я хочу добавить здесь некоторую логику, чтобы добавить lat и lng (они вычисляются из карт Google) в хранилище данных, как это определено в моей модели базы данных.Должен ли я добавить к данным, или я должен сделать это другим способом, например, с оригинальным классом.Каков наилучший способ сделать это?

так ...

class Company(db.Model):
  company_type = db.StringProperty(required=True, choices=["PLC", "LTD", "LLC", "Sole Trader", "Other"])
  company_lat = db.StringProperty(required=True)
  company_lng = db.StringProperty(required=True)

class CompanyForm(djangoforms.ModelForm):
  company_description = forms.CharField(widget=forms.Textarea(attrs={'rows':'2', 'cols':'20'}))
  company_address = forms.CharField(widget=forms.Textarea(attrs={'rows':'2', 'cols':'20'}))

  class Meta:
    model = Company
    exclude = ['company_lat,company_lng']


def post(self):
  data = CompanyForm(data=self.request.POST)
  map_url = ''  
  address = self.request.get("company_postcode")
  ...
  lat = response['results'][0]['geometry']['location']['lat']
  lng = response['results'][0]['geometry']['location']['lng']
  ...
  # How do I add these fields lat and lng to my data store?
  # Should I add them to data? if this is possible?
  # Or shall I do it some other way?

Спасибо

Ответы [ 2 ]

2 голосов
/ 20 мая 2011

Страница справки djangoforms объясняет, как добавить данные в вашу сущность хранилища данных.Вызовите метод save с помощью commit=False.Он возвращает сущность хранилища данных, а затем вы можете добавить поля перед сохранением с помощью put()

def post(self):
  ...
  # This code is after the code above
  if data.is_valid():
    entity=data.save(commit=False)
    entity.company_lat=lat
    entity.company_lng=lng
    entity.put()
1 голос
/ 20 мая 2011

Это действительно зависит от типов запросов, которые вы собираетесь делать.Если вы хотите выполнять геопространственные запросы, GeoModel создан для вашего случая использования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...