Проблемы с contenttypes при загрузке приспособления в Django

Имея

    float leftArray[numberOfDatums/2];
    float rightArray[numberOfDatums/2];

в

       if (i >= numberOfDatums/2)
        {
            //leftArray SOMEHOW GETS CHANGED INSTEAD OF RIGHT ARRAY
            rightArray[i] = dataValues[i];

вы выходите из rightArray и случайным образом записываете в leftArray (конечно, это неопределенное поведение)

должно быть

       if (i >= numberOfDatums/2)
        {
            rightArray[i - numberOfDatums/2] = dataValues[i];

Кроме того, иметь

       if (i < numberOfDatums/2)
        {
            ...
        }
        if (i >= numberOfDatums/2)

с i без изменений бесполезно, второе , если может быть , еще , но также лучше сделать два для , чтобы не делать numberOfDatums/2 все время, просто чтобы решить, какой массив использовать.

100
задан OMG Ponies 9 May 2011 в 23:24
поделиться

2 ответа

Да, это действительно раздражает. Некоторое время я работал над этим, выполняя «сброс manage.py» в приложении contenttypes перед загрузкой фикстуры (чтобы избавиться от автоматически сгенерированных данных contenttypes, которые отличались от дампированной версии). Это сработало, но в конце концов мне надоели хлопоты и полностью отказаться от фикстур в пользу прямых SQL-дампов (конечно, тогда вы потеряете переносимость БД).

update - лучший ответ - использовать --natural флаг для dumpdata , как указано в ответе ниже. Этот флаг еще не существовал, когда я писал этот ответ.

33
ответ дан 24 November 2019 в 04:48
поделиться

Попробуйте пропустить типы содержимого при создании фикстуры:

./manage.py dumpdata --exclude contenttypes > fixture.json

Это сработало для меня в аналогичной ситуации с модульными тестами, ваше понимание типов содержимого действительно помогло!

30
ответ дан 24 November 2019 в 04:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: