小编the*_*aju的帖子

LiveServerTestCase在django视图中挂起在python-requests后调用

我正在编写一个使用我创建的REST API的Django应用程序.目的是使用Web应用程序证明api用例.在我看来,我因此使用python-requests库调用api,如下所示:

def my_view_method(request):
    if request.method == 'POST':
    form = MyForm(request.POST)
    if form.is_valid():
        data = form.cleaned_data
        data_to_post = {
            'fieldA': data.get('fieldA_in_form'),
            'fieldB': data.get('fieldB_in_form'),
        }
        post_url = "http://%s/%s/" % (request.get_host(), 'entries')
        logger.info("request api url: "+ post_url)
        r = requests.post(post_url, data=data_to_post)
        return HttpResponseRedirect('/')
    else:
        form = MyForm()

    return render(request, 'myview.html', { 'form': form })
Run Code Online (Sandbox Code Playgroud)

我已经使用单元测试验证了使用有效数据POST到/ entries /会导致正确的数据库更新.

url = '/entries/'
#verify initial db state
data = { 'fieldA': value1, 'fieldB': value2 }
response = self.client.post(url, data, format='json')
# verify db was updated …
Run Code Online (Sandbox Code Playgroud)

python django functional-testing python-requests

11
推荐指数
1
解决办法
944
查看次数

UICollectionView:重装数据调用numberOfItemsInSection但不调用cellForItemAtIndexPath

我有一个简单的UICollectionView.第一次加载视图时,将调用cellForItemAtIndexPath三次,我看到三个单元格.

- (NSInteger)collectionView:(UICollectionView *)view numberOfItemsInSection:(NSInteger)section {
    NSUInteger count = ([self.results count] > 0 ? [self.results count] : 3);
    NSLog(@"count %lu", (unsigned long)count);
    return count;
}

- (UICollectionViewCell *)collectionView:(UICollectionView *)cv cellForItemAtIndexPath:(NSIndexPath *)indexPath {
    NSLog(@"cellForItemAtIndexPath called");
    UICollectionViewCell *cell = [cv dequeueReusableCellWithReuseIdentifier:@"TasteCell" forIndexPath:indexPath];
    cell.backgroundColor = [UIColor whiteColor];
    return cell;
}
Run Code Online (Sandbox Code Playgroud)

但是,后来的self.results变成了一个包含5个元素的数组,我称之为:

[self.collectionView reloadData];
Run Code Online (Sandbox Code Playgroud)

当发生这种情况时,再次调用numberOfItemsInSection并且其中的"count"日志语句显示它返回5.但是,这次,从不调用cellForItemAtIndexPath,并且UI仍显示第一次加载的三个单元格.

为什么即使计数已更改,单元格数量仍未更新?

objective-c ios uicollectionview

6
推荐指数
1
解决办法
3456
查看次数

Rails:堆栈级别太深的错误

我的rails应用程序有3个型号.小道,地区和特色.我可以在lib/tasks目录中很好地与这些模型进行交互.我用anemone来抓取并填充数据库.我在模型上调用的示例:

Trail.find_or_initialize_by_title(detail_title)
Run Code Online (Sandbox Code Playgroud)

我现在正在尝试编写一个使用该模型的控制器.

class TrailController < ApplicationController
    def index
        render :json => Trail.all
    end
end
Run Code Online (Sandbox Code Playgroud)

现在,如果我打开rails控制台并尝试app.get('trail/index')获得500返回代码,我在我的内容中看到以下内容development.log

SystemStackError(堆栈级别太深):
app/controllers/trail_controller.rb:23:在`index'中

所以我显然会引起一些无限的递归.第23行对应于索引方法的主体.我在我的应用程序中尝试过其他模型:功能和区域,结果是一样的.有人可以告诉我这里我做错了什么,或者我怎么能得到更多的追踪来弄清楚究竟什么是无限递归?

我的模型非常简单:

class Feature < ActiveRecord::Base 
  attr_accessible :name 
  has_and_belongs_to_many :trails 
  validates :name, :presence => true
end 

class Region < ActiveRecord::Base 
  attr_accessible :hash_key, :name 
  has_many :trails 
  validates :hash_key, :name, :presence => true 
end 

class Trail < ActiveRecord::Base 
  # attr_accessible :title, :body 
  has_and_belongs_to_many :features 
  validates :title, :presence => true    
end
Run Code Online (Sandbox Code Playgroud)

看来这是由searchlogic gem引起的.我在我的Gemfile中有这个:

gem 'rd_searchlogic', :require => 'searchlogic', :git => 'git://github.com/railsdog/searchlogic.|~                                                                                                    
Run Code Online (Sandbox Code Playgroud)

当我注释掉那一行时,运行bundle …

ruby ruby-on-rails searchlogic

5
推荐指数
1
解决办法
1290
查看次数

获取:uuid的输入语法无效:""当使用django-uuidfield作为模型的主键时

我有以下使用django-uuidfield作为主键的模型类:

class FODType(models.Model):
    id = UUIDField(auto=True, primary_key=True)
    name = models.CharField(max_length=50)
Run Code Online (Sandbox Code Playgroud)

从管理员,我尝试为此模型创建一个条目,但我收到以下错误:

/ admin// Bleary/fodtype/add /无效输入语法为uuid:""LINE 1:... WHERE"Bleary_fodtype"."id"=''

UUIDField如果没有指定值,则将模型设置为自动创建一个值,但在这种情况下,将指定空字符串作为保存主键的值.由于主键具有值,因此它尝试进行更新而不是插入并失败.

我在这做错了什么?

python django uuid

5
推荐指数
1
解决办法
2495
查看次数

std :: string vs char数组用于静态const

我想在我的cpp文件中的多个位置使用字符串常量.我应该使用std :: string还是char []?

static const std::string kConstantString = "ConstantStringValue";

static const char kConstantString[] = "ConstantStringValue";
Run Code Online (Sandbox Code Playgroud)

我被告知更喜欢后者,因为它"避免静态分配".char数组是否也必须静态分配?

c++ arrays static

4
推荐指数
1
解决办法
1682
查看次数