小编Moe*_*Far的帖子

Django从数据库获取最新条目

我有两个问题,但它们与同一主题有关.

我知道如何从for loop使用模板标签中检索数据

{% for status in status %}

    <tr>
        <td>{{ status.status}}</td>
    </tr>

{% endfor %}
Run Code Online (Sandbox Code Playgroud)

但是,当我想要检索单个对象时,即使我使用时也会出现错误:

po = Status.objects.latest('id')
Run Code Online (Sandbox Code Playgroud)

并删除for循环.

我明白了:

'Status' object is not iterable
Run Code Online (Sandbox Code Playgroud)

我的问题是:

  1. 如何从给定模型的数据库中获取最新条目?
  2. 如何设置模板标签以仅允许一条记录?

python django django-models

8
推荐指数
1
解决办法
1万
查看次数

学说不存在子查询

我在存储库中有这段代码:

 public function getNotAssignedBy($speciality, $diploma)
{
    $qb = $this->createQueryBuilder('j')
        ->select('DISTINCT(j.id) id', 'j.firstName', 'j.lastName', 'j.dateBirth', 'j.sex')
        ->leftJoin('j.qualifications', 'q')
    ;


    if ($speciality) {
        $qb->andWhere('q.speciality = :speciality_id')->setParameter('speciality_id', $speciality);
    }
    if ($diploma) {
        $qb->andWhere('q.diploma = :diploma_id')->setParameter('diploma_id', $diploma);
    }

    $result = $qb->getQuery()->getResult();

    return $result;
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能获得另一个实体中不存在id的行?

任何帮助.谢谢

php symfony doctrine-orm

8
推荐指数
1
解决办法
1万
查看次数

Cakephp搜索MySQL

对使用MySQL数据库的Cakephp应用程序进行基于文本的搜索的哪种实现是"最好的"?

php cakephp

7
推荐指数
2
解决办法
5439
查看次数

Symfony2 RESTful API + AngularJS

我一直在研究一个基于Symfony2(用于后端)的电子商务项目和用于前端的AngularJS.目前,Symfony部分仅用作API,它具有三个不同的用户级别(访客,客户和管理员).可以在系统内完成的不同操作(如添加/删除数据)通过以下方式得到保护:

1)具有用户角色/访问控制的Symfony2防火墙
2)额外的JMS安全性(@PreAuthorize表达式)

对于安全的部件,一切都按预期工作,我对工作方式非常满意.

问题:

API的某些部分是公开的(例如检索产品信息,类别等).我正在使用Ajax调用我的API检索Angular中的此类数据,该API调用JSON格式的数据.一个例子是:

/ API /产品/ /?页= 1&得到-所有计数= 10&排序[ID] = ASC

问题是任何人都可以在浏览器中查看请求并复制路径并访问所有数据(例如所有产品),并且可以只下载所有信息的JSON.虽然这些数据是"公开的",但我不想让其他人轻易"窃取"我的数据.

想法和可能的解决方案

1)我正在查看JWT(Json Web Token)标准,尝试保护对我的API的公共调用,并以这样的方式实现它,即我为网站上的"真实"用户生成令牌,并且这样的限制直接访问公共API链接.

你怎么看?这是一个可能的解决方案吗?

2)我还在阅读StackOverflow上的其他一些问题,我可以从请求中检查HTTP_X_REQUESTED_WITH标头,但我们都知道攻击者很容易欺骗它.

3)最后,我在这里阅读了类似于"解决方案"1)的方法:http://engineering.talis.com/articles/elegant-api-auth-angular-js/但我不完全确定这适合我的目的.

补充说明:

  • 我不想让这个防弹,但我也不想让人们选择点击2个按钮并获取我的所有数据.我知道最终所有信息都可能被"窃取"(例如:通过使用网络剪贴板),但是"保护"系统的方式是人们必须做出一点努力才是我的想法.
  • 在这个阶段我无法真正重新模拟我的API,但任何想法都会受到赞赏

感谢您抽出宝贵时间阅读我的问题,我期待着您的反馈.

php api symfony angularjs

7
推荐指数
1
解决办法
1571
查看次数

如何在Django中测试send_mail?

使用Django 1.7和Python 2.7.

我想测试邮件是否已发送以及邮件内容是否正确.

我尝试过使用django.core.mail中的outbox,但无济于事.我也可以获得stdout(因为我在运行测试时可以在控制台中看到邮件)?

models.py

class User(AbstractBaseUser, PermissionsMixin):
    USERNAME_FIELD = 'email'

    email = models.EmailField(max_length=255, unique=True)
    is_staff =  models.BooleanField(default=False)
    org = models.ForeignKey('Org', null=True, blank=True,
        on_delete=models.SET_NULL)

    def __unicode__(self):
        return self.email

    @staticmethod
    def send_password_token(email):
        user = get_object_or_404(User, email=email)
        token = Token.objects.get(user=user)
        message_body = 'Your password reset token:\n\n\t%s' % token.key
        send_mail('Password reset:', message_body,
            settings.FROM_EMAIL, [email], fail_silently=False)
Run Code Online (Sandbox Code Playgroud)

tests.py

class UserModelTest(TestCase):
    def setUp(self):
        self.user = User.objects.create_user(email='user@info.com',
            password='0000')

    @override_settings(EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend')
    def test_send_password_token(self):
        """
        Sends a password reset mail with users authentication token.
        """
        token = …
Run Code Online (Sandbox Code Playgroud)

python email django django-mailer

7
推荐指数
1
解决办法
2415
查看次数

去数学包有无效的结果

我只是在我的电脑上运行此代码:

package main

import (
   "fmt"
   "math"
)

func main() {
   const ali = 4e20
   fmt.Println(math.Sin(ali))
}
Run Code Online (Sandbox Code Playgroud)

得到了这个结果:

1.3471173831553043e+258
Run Code Online (Sandbox Code Playgroud)

为什么罪的结果超过1?

Python和其他一些语言都有正确的结果

math go

7
推荐指数
1
解决办法
94
查看次数

Yii中的关系装置

如何在Yii中设置具有关系的灯具?例如,帖子可以有评论,如何在灯具中引用帖子ID来创建评论?

后夹具:

return array(
  'post1'=>array(
    'title'=>'My title',
    'body'=>'My text',
  ), 
  ...
Run Code Online (Sandbox Code Playgroud)

评论夹具:

return array(
  'comment1'=>array(
    'text'=>'Comment text...',
    'post_id'=> ???
  ), 
Run Code Online (Sandbox Code Playgroud)

php fixtures yii

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

Yii Controller无法找到请求的视图

我在渲染"错误"视图时遇到此错误

ApiController cannot find the requested view "error".
Run Code Online (Sandbox Code Playgroud)

所有目录都是小写字母.我在Linux机器上运行Yii

Sample Code:

class ApiController extends Api
{
    private $api;
    private $placesapikey;

public function __construct()
{
    parent::__construct("Api");
    $uri = explode('=', Yii::app()->request->getQueryString());
    $this->api = end($uri);
    $this->placesapikey = "";

    if ($this->api != Yii::app()->params['apikey'] || $this->api == '')
    {
        $error['data']['title'] = "Un-Authorized Access";
        $error['data']['message'] = "You are not authorized to access or view this area";
        $this->render('error', $error);
        exit;
    }
}
Run Code Online (Sandbox Code Playgroud)

php yii

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

Symfony 2退出

这是我的第一个Symfony 2应用程序,我正在尝试注销当前登录的用户.

这是我的app/config/security.yml

security:
encoders:
    Symfony\Component\Security\Core\User\User: plaintext

role_hierarchy:
    ROLE_ADMIN:       ROLE_USER
    ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

providers:
    in_memory:
        memory:
            users:
                user0:  { password: user0, roles: [ 'ROLE_ADMIN' ] }
                user1:  { password: user1, roles: [ 'ROLE_SUPER_ADMIN' ] }

firewalls:
    dev:
        pattern:  ^/(_(profiler|wdt)|css|images|js)/
        security: false

    login:
        pattern:  ^/demo/secured/login$
        security: false

    secured_area:
        pattern: ^/
        logout: ~
        anonymous: ~
        http_basic:
            realm: "Secured Area"

access_control:
    - { path: ^/question/*, roles: ROLE_ADMIN }
    - { path: ^/questiongroup/*, roles: ROLE_ADMIN }
    - { path: ^/answer/*, roles: ROLE_ADMIN } …
Run Code Online (Sandbox Code Playgroud)

php symfony

6
推荐指数
2
解决办法
8958
查看次数

覆盖 Django Rest 中的 authToken 视图

我在 Django 中使用基于令牌的身份验证,除了返回的令牌外,还需要添加用户对象。

如何覆盖此类视图?我需要在哪里添加此类并进行更改?目前这是在 rest_framework 包中找到的,我不想修改库。

from rest_framework import parsers, renderers
from rest_framework.authtoken.models import Token
from rest_framework.authtoken.serializers import AuthTokenSerializer
from rest_framework.response import Response
from rest_framework.views import APIView


class ObtainAuthToken(APIView):
    throttle_classes = ()
    permission_classes = ()
    parser_classes = (parsers.FormParser, parsers.MultiPartParser, parsers.JSONParser,)
    renderer_classes = (renderers.JSONRenderer,)
    serializer_class = AuthTokenSerializer
    print "dasdsa"

    def post(self, request):
        serializer = self.serializer_class(data=request.data)
        serializer.is_valid(raise_exception=True)
        user = serializer.validated_data['user']
        token, created = Token.objects.get_or_create(user=user)
        return Response({'token': token.key})


obtain_auth_token = ObtainAuthToken.as_view()
Run Code Online (Sandbox Code Playgroud)

python django inheritance django-rest-framework

6
推荐指数
2
解决办法
4355
查看次数