Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 10, 2015 22:10:18

GreyZmeem
От: Киев
Зарегистрирован: 2013-12-03
Сообщения: 147
Репутация: +  34  -
Профиль   Отправить e-mail  

связать пользователя и модель

File “F:\MyWork\Ordis2\Ordis_Web\views.py” in order_grid_config
79. return JsonResponse(z, safe=False)

Это совсем другая ошибка.
В “z” у вас есть данные которые не могут быть сериализованы в json.



Офлайн

#2 Янв. 10, 2015 22:20:08

frostspb
Зарегистрирован: 2013-04-24
Сообщения: 60
Репутация: +  0  -
Профиль   Отправить e-mail  

связать пользователя и модель

так если user__username поменять на просто user всё работает

наверное, это проблема django-jqgrid

Офлайн

#3 Янв. 13, 2015 18:38:14

frostspb
Зарегистрирован: 2013-04-24
Сообщения: 60
Репутация: +  0  -
Профиль   Отправить e-mail  

связать пользователя и модель

ошибку я поборол, но данные всё равно не появились,тк тот кусок кода, как я понял , отвечает только за описание заголовков полей. а в данные то всё равно попадает user, а не user_name

Отредактировано frostspb (Янв. 13, 2015 18:39:47)

Офлайн

#4 Янв. 13, 2015 20:24:15

_navi
Зарегистрирован: 2014-04-13
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

связать пользователя и модель

Код сейчас как выглядят?

Офлайн

#5 Янв. 13, 2015 20:40:04

frostspb
Зарегистрирован: 2013-04-24
Сообщения: 60
Репутация: +  0  -
Профиль   Отправить e-mail  

связать пользователя и модель

модели

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},
        }

Джанго 1.7 оказался немного несовместим с django-jqgrid
пришлось кое что подправить

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")


соотвественно пришлось править и сам jqgrid.py

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)

Офлайн

#6 Янв. 14, 2015 00:52:56

_navi
Зарегистрирован: 2014-04-13
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

связать пользователя и модель

Я вот посмотрел, django-jqgrid не обновляется уже года 2, и его из pypi выкинули, что как бы намекает что враппер дохлый. Так что или самому пилить, или на другие гриды посмотреть.

Офлайн

#7 Янв. 14, 2015 09:22:00

frostspb
Зарегистрирован: 2013-04-24
Сообщения: 60
Репутация: +  0  -
Профиль   Отправить e-mail  

связать пользователя и модель

кстати, с джанго 1.6 он вполне себе работал, надо будет попробовать этот трюк (user__username) в 1.6
может там прокатит.
а другие гриды, это какие если не секрет?

ну и к слову, django-jqgrid не поддерживал привязку url на редактирование, но это дорабатывалось 1 строчкой

Офлайн

#8 Янв. 14, 2015 22:09:14

_navi
Зарегистрирован: 2014-04-13
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

связать пользователя и модель

Я сейчас datatables использую, jeasyui вроде ничего, страшный только.

Офлайн

#9 Янв. 14, 2015 22:37:12

frostspb
Зарегистрирован: 2013-04-24
Сообщения: 60
Репутация: +  0  -
Профиль   Отправить e-mail  

связать пользователя и модель

а для datatables есть какие то питон библиотеки?
и в datatables можно делать редактирование, лукапы, выпадающие датапикеры и тд?

Отредактировано frostspb (Янв. 14, 2015 22:40:11)

Офлайн

#10 Янв. 14, 2015 22:56:18

_navi
Зарегистрирован: 2014-04-13
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

связать пользователя и модель

django-eztables, но суть та же - формируется json по которому джаваскриптом строится грид.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version