小编Dan*_*Dan的帖子

Django - 将参数传递给内联formset

我正在使用inlineformset_factory中间出勤模型为客户和会话之间的多对多关系创建字段.

我在视图文件中有以下内容:

AttendanceFormset = inlineformset_factory(
    Session,
    Attendance,
    formset=BaseAttendanceFormSet,
    exclude=('user'),
    extra=1,
    max_num=10,
    )

session = Session(user=request.user)
formset = AttendanceFormset(request.POST, instance=session)
Run Code Online (Sandbox Code Playgroud)

并且,因为我需要覆盖其中一个表单字段,我将以下内容添加到formset基类:

class BaseAttendanceFormSet(BaseFormSet):

    def add_fields(self, form, index):
        super(BaseAttendanceFormSet, self).add_fields(form, index)
        form.fields['client'] = forms.ModelChoiceField(
                queryset=Client.objects.filter(user=2))
Run Code Online (Sandbox Code Playgroud)

现在,表单正常工作,但我需要将值传递给formset,以便我可以过滤基于当前用户显示的客户端,而不是仅使用id 2.

有人可以帮忙吗?

任何建议表示赞赏

谢谢.

编辑

对于任何读书的人来说,这对我有用:

def get_field_qs(field, **kwargs):
        if field.name == 'client':
            return forms.ModelChoiceField(queryset=Client.objects.filter(user=request.user))
        return field.formfield(**kwargs)
Run Code Online (Sandbox Code Playgroud)

python django formset

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

HTML - 表行周围是否有正确的容器元素?

我有一个HTML表,我想使用带有一些基本javascript的选择框动态添加或删除行.

我不是同时添加单行,而是添加一组相似的行.例如,如果我已经有一个,然后添加另一个,结果将是这样的:

<tr>
<th colspan="2">Item 1</th>
</tr>
<tr>
  <th>Title</th>
  <td>X</td>
</tr>
<tr>
  <th>Description</th>
  <td>Y</td>
</tr>
<tr>
<th colspan="2">Item 2</th>
</tr>
<tr>
  <th>Title</th>
  <td>A</td>
</tr>
<tr>
  <th>Description</th>
  <td>B</td>
</tr>
Run Code Online (Sandbox Code Playgroud)

要添加行,我使用的是jQuery的clone方法,所以我需要某种容器元素来绕过行组,但是,我尝试的所有内容(span,div等)导致HTML无效并且无法正常运行.

我设法让它工作的唯一方法是将每个设置作为一个单独的表,但这不是我想要的效果.

我能做些什么来解决这个问题吗?

html html-table

5
推荐指数
2
解决办法
7205
查看次数

如何在TwigBridge中访问Laravel 4错误?

我已经为Laravel 4安装了TwigBridge,我正在尝试调整一些我已经从Blade到Twig的模板.

我想在视图的顶部显示一些验证错误.

我在Blade中有以下内容(工作正常):

@if (isset($errors))
    @foreach ($errors->all() as $error)
        <p>{{ $error }}</p>
    @endforeach
@endif
Run Code Online (Sandbox Code Playgroud)

我试图将它转换为Twig,但没有显示任何内容.

{% if errors %}
    {% for error in errors %}
        <p>{{ error }}</p>
    {% endfor %}
{% endif %}
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试:

{{ errors }} 
Run Code Online (Sandbox Code Playgroud)

我确实得到了一些输出:

{"name":["名称字段是必填项."]}

为了让它发挥作用,我需要改变什么?

任何建议表示赞赏

谢谢

twig laravel laravel-4

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

从代码路径播种数据库?

我一直在使用Laravel的路径参数迁移,如下所示:

Artisan::call('migrate', array('--path' => 'path/to/my/Migrations'));
Run Code Online (Sandbox Code Playgroud)

无论如何我可以用同样的方式运行种子命令吗?我有一些我想要使用的种子文件,但我不想同时运行它们.

任何建议表示赞赏

谢谢

seeding laravel laravel-4

4
推荐指数
2
解决办法
6254
查看次数

PHPExcel - 从HTML表创建电子表格?

我正在尝试创建一个简单的报告系统,它可以输出HTML或导出到Excel.我已经通过Codeigniter视图成功创建了一个HTML表,但我想知道是否有任何方法可以重新使用该视图来创建Excel导出,而不是手动执行,因为我必须更新每当我想对报告进行更改时,它会在两个地方出现.

任何建议表示赞赏

谢谢.

phpexcel codeigniter-2

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

Django - 将CSS类添加到SplitDateTimeWidget?

我使用SplitDateTimeWidget来覆盖模型表单中的字段.有没有办法将css类分配给由此创建的各个字段?

widgets = {
              'my_field': SplitDateTimeWidget(),
                }
Run Code Online (Sandbox Code Playgroud)

任何建议表示赞赏

在我尝试了你的代码后Brandon:

如果我在没有通过attrs的情况下尝试它,我会得到:'NoneType'对象不可迭代

对于线attrs_dict = dict(attrs).

如果我确实包含了attrs,我得到:'tuple'对象没有属性'copy'

at /usr/local/lib/python2.6/dist-packages/django/forms/widgets.py in init,第147行

forms django

2
推荐指数
1
解决办法
1485
查看次数

Django 动态访问相关属性?

我正在使用 getattr 像这样动态访问模型的属性(假设 Student 模型有一个名为 name 的属性):

students = Student.objects.all()
property = 'name'


for student in students:
    print getattr(student, property)
Run Code Online (Sandbox Code Playgroud)

这工作正常,但是我想知道是否可以以相同的方式访问相关记录的属性,例如(假设每个学生都有一个相关组,其属性名为 title):

students = Student.objects.selected_related()
property = 'group.title'


for student in students:
    print getattr(student, property)
Run Code Online (Sandbox Code Playgroud)

有了这个,我只是收到错误“学生没有属性 group.title”

有没有办法实现这一目标?

任何建议表示赞赏。

谢谢

python django getattr

2
推荐指数
1
解决办法
1478
查看次数

Symfony2 - 成功登录后的重定向

我刚开始学习Symfony 2教程.我已经创建了一个包含用户类的包,并尝试按照说明设置登录过程.我想我差不多了,不过我现在正处于最后一关.

我已经设置了一个包:Dan\AuthBundle,它包含我的用户类和另一个包:Dan\HelloBundle,我想只允许登录用户访问.

我的security.yml文件如下:

security:
    encoders:
        Dan\AuthBundle\Entity\User: sha512

    providers:
        main:
            entity: { class: Dan\AuthBundle\Entity\User, property: username }
        administrators:
            entity: { class: DanAuthBundle:User }

    firewalls:
        secured_area:
            pattern:    ^/*
            form_login:
                check_path: /login_check
                login_path: /login
                always_use_default_target_path: false
                default_target_path: /hello

    access_control:
        - { path: ^/hello/.* }
Run Code Online (Sandbox Code Playgroud)

主要的routing.yml文件如下所示:

DanAuthBundle:
    resource: "@DanAuthBundle/Resources/config/routing.yml"
    prefix:   /auth/

DanHelloBundle_homepage:
pattern:  /hello/
defaults: { _controller: DanHelloBundle:Default:index }

login:
    pattern: /login
    defaults: {_controller: DanAuthBundle:Default:login }

login_check:
    pattern: /login_check
Run Code Online (Sandbox Code Playgroud)

我已手动创建了几个用户类实例.

如果我尝试访问url/hello,我会正确地重定向到登录页面.如果我输入了错误的详细信息,我会在模板中收到正确的消息,但是,当我使用正确的详细信息登录时,我收到324(空响应)错误(此时,浏览器中显示的URL是login_check).

从阅读文档,我想我应该被重定向到我最初尝试访问的页面?

http://symfony.com/doc/current/book/security.html#using-a-traditional-login-form

默认情况下,如果提交的凭据正确,则用户将被重定向到请求的原始页面(例如/ admin/foo).如果用户最初直接进入登录页面,他将被重定向到主页.这可以高度自定义,例如,您可以将用户重定向到特定的URL.

此外,如果我在输入正确的详细信息后尝试访问该页面,我将再次被重定向到登录页面.

任何人都可以看到我是否错过了任何明显的东西?

这是我的日志文件:

[2012-06-18 18:33:47] doctrine.DEBUG:SELECT t0.id AS …

authentication login symfony

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

Symfony2 - 使用ArrayCollection填充文本字段?

我正在使用FPNTagBundle,我希望有一个文本字段来向实体添加标签,其工作方式与此网站上的标签相同.

我可以使用explode创建一个标签没有问题的新实体但是当我再次编辑实体时,我会在文本字段中得到类似的内容.

学说\ COMMON \收藏\的ArrayCollection @ 0000000062a07bb50000000047044868

有没有办法我可以预先用数组集合填充文本字段,以便显示所有标记,用空格分隔?

这是我目前在控制器中的内容:

public function editpageAction(Request $request, $id = NULL)
{
    $em = $this->getDoctrine()->getEntityManager();
    $tagManager = $this->get('fpn_tag.tag_manager');
    $page = new Page();

    if ( ! empty($id))
    {
        $page = $em->getRepository('ContentBundle:Page')->findOneById($id);
        $tagManager->loadTagging($page);
    }

    $form = $this->createForm(new PageType(), $page);

    if ($request->isMethod('POST')) 
    {
        $form->bind($request);

        if ($form->isValid()) 
        {   
            $em = $this->getDoctrine()->getManager();
            $em->persist($page);
            $em->flush();

            return $this->redirect($this->generateUrl('content_admin_list_sections'));
        }
    }

    return $this->render('ContentBundle:Admin:page.html.twig', array('form' => $form->createView()));
}
Run Code Online (Sandbox Code Playgroud)

任何建议表示赞赏

谢谢

php symfony

2
推荐指数
1
解决办法
2098
查看次数

将对象传递给自定义选民?

我一直在阅读有关在Symfony 2中创建自定义选民的信息.根据这个页面,可以将一个对象传递给securitycontext的isGranted方法,我在自己的控制器中完成了这个方法:

$page = new Page();

if ( ! $securityContext->isGranted('CONTENT_CREATE', $page)) {
    throw new AccessDeniedException('Fail');
}
Run Code Online (Sandbox Code Playgroud)

看起来像投票方法应该接受它,但是,当我在$ object参数上调用get_class而不是获取我的Page实体时,我得到:

Symfony的\分量\ HttpFoundation \请求

public function vote(TokenInterface $token, $object, array $attributes)
{   
    print_r(get_class($object)); die();
    return VoterInterface::ACCESS_ABSTAIN;
}
Run Code Online (Sandbox Code Playgroud)

我的选民被定义为我的services.yml文件中的服务:

content_security.access.my_voter:
        class:      My\Bundle\Security\Authorization\Voter\MyVoter
        arguments:  ["@service_container"]
        public:     false
        tags:
            - { name: security.voter }
Run Code Online (Sandbox Code Playgroud)

我哪里错了?

任何建议表示赞赏

谢谢

symfony symfony-security

2
推荐指数
1
解决办法
1428
查看次数

Python - 从循环构建字符串

我有一组具有纬度和经度值的点,我正在尝试使用以下格式创建一个字符串,以便使用Gmaps API:

 LatitudeX,LongitudeX|LatitudeY,LongitudeY
Run Code Online (Sandbox Code Playgroud)

最终的字符串将使用未知数量的lat long对构建.

我以前的经验是使用PHP,虽然我已经设法得到一些工作,但它看起来有点笨拙,我想知道是否有更多'pythonic'方式来实现结果.

这是我到目前为止所拥有的:

 waypoints = ''

 for point in points:
     waypoints = waypoints+"%s,%s" % (point.latitude, point.longitude)+"|"

 waypoints = waypoints[:-1]
Run Code Online (Sandbox Code Playgroud)

任何建议表示赞赏

谢谢

python string

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

PHP - 获取下5个工作日的日期?

我正在尝试创建接下来5个工作周的数组(周一至周五,今天除外).我知道世界各地的工作周各不相同,但这对我要做的事情并不重要.

因此,例如,如果今天是星期三,我想要当前星期四和星期五以及下一周的星期一,星期二和星期三的日期.

我认为这会奏效:

$dates = array();

for ($i = 1; $ < 6; $i ++)
{
    $dates[] = date('Y-m-d', strtotime('+ '.$i.' weekday'));
}
Run Code Online (Sandbox Code Playgroud)

但是对于今天,它给了我:

  • 星期一1号
  • 周二2号
  • 周三3日
  • 周四4号
  • 星期天7号!

任何建议表示赞赏

谢谢

php date strtotime

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

表单验证 - 只需要填写一个字段

我有以下表单类:

public function buildForm(FormBuilderInterface $builder, array $options)
{
        $builder
            ->add('existingfolder', 'entity', array(
                'class'     => 'ImageBundle:Folder',
                'required'  => false,
            ))
            ->add('folder', 'text', array('required' => false))
            ->add('file', 'file');
}
Run Code Online (Sandbox Code Playgroud)

如何设置验证,以便必须填写existingfolderfolder字段(但不是两者都填写)?

任何建议表示赞赏

谢谢.

forms validation symfony

0
推荐指数
1
解决办法
2080
查看次数