我有两个问题,但它们与同一主题有关.
我知道如何从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)
我的问题是:
我在存储库中有这段代码:
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的行?
任何帮助.谢谢
我一直在研究一个基于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/但我不完全确定这适合我的目的.
补充说明:
感谢您抽出宝贵时间阅读我的问题,我期待着您的反馈.
使用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) 我只是在我的电脑上运行此代码:
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和其他一些语言都有正确的结果
如何在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) 我在渲染"错误"视图时遇到此错误
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) 这是我的第一个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) 我在 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)