我正在尝试为Django Rest Framework实现测试.我的大多数测试都通过并且设置assertEqual得很顺利,但我现在遇到一个问题,因为它一直在比较JSON和OrderedDict.
我不知道OrderedDict来自哪里,因为DRF 应该只返回JSON(对吧?).
测试环境可能在比较之前解析JSON吗?那会很糟糕.
我正在进行集成测试,只测试GET请求对某个资源的响应中的数据,我是基于JSON装置做的.我没有测试REST框架的特定组件,因为我的组件实现非常简单,它们已经通过DRF项目中的测试进行了测试.
无论如何,我希望有人可以帮助我!
我目前正在使用SF2中的服务,该服务使用在本服务的构造函数中使用特定于存储库的QueryBuilder的类变量集来使用QueryBuilder查询数据库.这意味着我想尽可能地使用这个集合QueryBuilder来获得更整洁的代码和使用它的干净感觉.
我想避免在EntityManager上创建查询,而是仅使用此预定义的Querybuilder进行查询.
我正在寻找看起来像以下那样的东西:
$query = $this->fooRepository->createQueryBuilder('f')->select('*');
return $query->getResult(Query::HYDRATE_ARRAY);
Run Code Online (Sandbox Code Playgroud)
据我所知,以上将(如果它工作)返回数据库中的所有foo ..
如果您认为我是愚蠢的,应该对预定义的QueryBuilders做一些不同的事情,或者只使用:
createQuery()
Run Code Online (Sandbox Code Playgroud)
方法,因为它根本不是好的做法或不可能,不要犹豫告诉我.
谢谢!
我是Django Rest Framework的新手,我正在尝试使用DRF序列化(相关)对象列表.
我有以下型号:
class Answer(models.Model):
value = models.CharField(max_length=128)
class User(models.Model):
name = models.CharField(max_length=128)
age = models.PositiveIntegerField()
class UserAnswer(models.Model):
user = models.ForeignKey(User)
answer = models.ForeignKey(Answer)
Run Code Online (Sandbox Code Playgroud)
我试图获得的结果是这种形式:
[
{
"name": "myName1",
"answers": [
{
"value": "myFirstAnswer"
},
{
"value": "mySecondAnswer"
},
{
"value": "myThirdAnswer"
},
]
},
{
"name": "myName2",
"answers": [
{
"value": "myFirstAnswer"
},
{
"value": "mySecondAnswer"
},
{
"value": "myThirdAnswer"
},
]
}
]
Run Code Online (Sandbox Code Playgroud)
我现在正试着这样做:
class UserAnswerSerializer(serializers.ModelSerializer):
answers = AllUserAnswersSerializer(many=True, read_only=True)
class Meta:
model = User
fields = …Run Code Online (Sandbox Code Playgroud) 当我覆盖urls.py中的handler404和handler500时,如下所示:
from myapp.views import not_found_view
handler404 = not_found_view
handler500 = not_found_view
Run Code Online (Sandbox Code Playgroud)
并调用raise Http404()我的中间件,我看到我的404页面.
当我都删除handler404,并handler500从我urls.py和raise Http404()我的中间件,我看到我的默认的500错误页面(从Django的套装) -因此我试图设置自定义模板404的理由上使用raise Http404()的.
现在我的问题:当我删除handler500并且只设置handler404时,我也会看到HTTP 500页面!:|
为什么我handler500被叫了raise Http404()?
我在多个应用程序中有多个模板目录,我尝试404.html在我的主应用程序中放置一个包含设置和另一个"普通"应用程序,但这不起作用..
我已经设置DEBUG来False为好.
希望有人能回答我的问题!
使用Django Rest Framwork,我想在数据库中设置一个不能为null的字段,但是fields在我实际保存ModelSerializer管理的模型之前,它不包含在Meta类的元组中.
在我ViewSet,我定义perform_create并想要做这样的事情:
serializer.fields.new_field = new_field_id
这里new_field是我的模型和new_field.id外键是我使用的cookie中设置的值只取模型的ID.
有谁知道这个干净的解决方案?
谢谢!
对于我的工作,我必须编辑一个用Zend框架创建的网站.当我在我的测试服务器上部署它们并浏览到index.php时,我得到的是一个空白屏幕.
我打开了display_startup_errors和error_reporting,没有显示错误.
也许它与网站的某些文件中的路径有关,因为它是由另一家公司创建的,该公司在实际服务器上部署网站后向我提供了文件.
我真的希望有人可以帮助我..我已经通过互联网搜索但是从来没有找到解决方案,即使多人遇到了我的问题.
提前致谢.
django ×4
python ×3
php ×2
rest ×2
apache ×1
doctrine-orm ×1
json ×1
symfony ×1
zend-session ×1