Форум сайта python.su
File “F:\MyWork\Ordis2\Ordis_Web\views.py” in order_grid_config
79. return JsonResponse(z, safe=False)
Офлайн
так если user__username поменять на просто user всё работает
наверное, это проблема django-jqgrid
Офлайн
ошибку я поборол, но данные всё равно не появились,тк тот кусок кода, как я понял , отвечает только за описание заголовков полей. а в данные то всё равно попадает user, а не user_name
Отредактировано frostspb (Янв. 13, 2015 18:39:47)
Офлайн
Код сейчас как выглядят?
Офлайн
модели
class Orders(models.Model): name = models.CharField(max_length=64, verbose_name= 'ИМЯ') desc = models.CharField(max_length=64) user = models.ForeignKey(User)
class OrdersGrid(JqGrid): model = Orders # could also be a queryset fields = ['id', 'name', 'desc', 'user_id'] # optional url = reverse_lazy('Ordis_Web:order_grid_handler') pager_id = '#order_pager' caption = 'Orders Grid' # optional colmodel_overrides = { 'id': {'editable': False, 'width': 10}, 'name': {'editable': True, 'width': 15}, 'desc': {'editable': True, 'width': 30}, }
def order_grid_handler(request): # handles pagination, sorting and searching grid = OrdersGrid() x = grid.get_json(request) return JsonResponse(x, safe=False) #раньше было return HttpResponse(grid.get_json(request), mimetype="application/json") def order_grid_config(request): grid = OrdersGrid() cc = reverse_lazy('Ordis_Web:order_grid_test_save') z = grid.get_config(urledit=str(cc)) return JsonResponse(z, safe=False) #раньше было return HttpResponse(grid.get_config(), mimetype="application/json")
def get_config(self, as_json=True, urledit=None): config = self.get_default_config() config.update(self.extra_config) config.update({ 'url': self.get_url(), 'caption': self.get_caption(), 'colModel': self.get_colmodels(), 'editurl': urledit, }) #if as_json: #config = json_encode(config) return config def get_json(self, request): paginator, page, items = self.get_items(request) if type(items) != ValuesQuerySet: items = items.values() data = { 'page': int(page.number), 'total': int(paginator.num_pages), 'rows': [obj for obj in items], 'records': int(paginator.count), } return data #json_encode(data)
Отредактировано frostspb (Янв. 13, 2015 20:44:01)
Офлайн
Я вот посмотрел, django-jqgrid не обновляется уже года 2, и его из pypi выкинули, что как бы намекает что враппер дохлый. Так что или самому пилить, или на другие гриды посмотреть.
Офлайн
кстати, с джанго 1.6 он вполне себе работал, надо будет попробовать этот трюк (user__username) в 1.6
может там прокатит.
а другие гриды, это какие если не секрет?
ну и к слову, django-jqgrid не поддерживал привязку url на редактирование, но это дорабатывалось 1 строчкой
Офлайн
Я сейчас datatables использую, jeasyui вроде ничего, страшный только.
Офлайн
а для datatables есть какие то питон библиотеки?
и в datatables можно делать редактирование, лукапы, выпадающие датапикеры и тд?
Отредактировано frostspb (Янв. 14, 2015 22:40:11)
Офлайн
django-eztables, но суть та же - формируется json по которому джаваскриптом строится грид.
Офлайн