小编Pie*_*NAY的帖子

Django - 在重复键上保存()更新

我的应用程序很少,允许用户对视频进行评级.

用户只能评价一次.所以我已经定义了模型的唯一性.

但他应该能够改变他的比率.所以save()应该更新重复键

class VideoRate(models.Model):
  """Users can Rate each Video on the criterias defined for the topic"""
  user = models.ForeignKey(User)
  video = models.ForeignKey(VideoFile)
  crit = models.ForeignKey(VideoCrit)
  rate = models.DecimalField(max_digits=2, decimal_places=1, choices=RATE_CHOICES)
  class Meta:
    unique_together = (('user', 'video', 'crit'),)
    verbose_name = 'Video Rating'
Run Code Online (Sandbox Code Playgroud)

如果我

rate = VideoRate(user_id=1, video_id=1, crit_id=1, rate=2)
rate.save()
Run Code Online (Sandbox Code Playgroud)

它正在保存评级,但如果我

rate = VideoRate(user_id=1, video_id=1, crit_id=1, rate=3)
rate.save()
Run Code Online (Sandbox Code Playgroud)

我得到了正常的错误

IntegrityError: (1062, "Duplicate entry '1-1-1' for key 'user_id'")
Run Code Online (Sandbox Code Playgroud)

即使我使用force_update=True(因为仅基于主键)

有没有办法更新评级,如果它已经存在而不必检查之前的数据?

django save insert-update unique-constraint

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

扩展本地Dockerfile

我试图Dockerfile建立另一个本地的.

$ ls -lR
total 0
-rw-r--r--  1 me     me      42 14 avr 10:42 Dockerfile
drwxr-xr-x  3 me     me      42 14 avr 10:42 prod

./prod:
total 0
-rw-r--r--  1 me     me      42 14 avr 10:42 Dockerfile

$ cat prod/Dockerfile
FROM ../Dockerfile
...

$ docker build - < prod/Dockerfile
Run Code Online (Sandbox Code Playgroud)

无法处理Dockerfile:无法解析存储库信息:存储库名称组件必须匹配"a-z0-9 (?:[._] a-z0-9)*"

我知道FROM期待图像而不是路径.

如何延长Dockerfileprod/Dockerfile

docker

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

如何在symfony 2中更改表单字段值

我有一个如下表格:

class ItemType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            // ...
            ->add('tags','text',array(
                'required' => false,
                'attr' => array('name' => 'tags'),
                'mapped' => false))
        ;
    }

    public function setDefaultOptions(OptionsResolverInterface $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => 'MyBundle\ItemBundle\Entity\Item',
            'cascade_validation' => true,
        ));
    }
}
Run Code Online (Sandbox Code Playgroud)

我的编辑动作

public function editAction(Request $request, $id) {
    $em = $this->getDoctrine()->getManager();
    $entity = $em->getRepository('MyBundleItemBundle:Item')->find($id);
    $form = $this->createForm(new ItemType(), $entity);
    //$form->get('tags')->setValue('test text');
    // ^- this is what i would like to do -^
    // ...
}
Run Code Online (Sandbox Code Playgroud)

在我编辑项目时,如何在渲染之前更改控制器内的表单字段值?

symfony-forms symfony-2.3

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

fullCalendar - 活动标题和详细信息

我正在使用漂亮的fullCalendar jQuery插件.

我希望能够在每个事件中都有标题和详细信息,如下面的屏幕截图所示:

这里的细节是每个会话的参与者.(隐藏在细节上的溢出)

javascript jquery rendering fullcalendar

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

Bootstrap Collapse - 打开给定的id片段

想象一下Bootstrap崩溃有3个部分

<div class="panel-group" id="accordion">
    ...
    <div id="accordionOne" class="panel-heading"></div>
    ...
    <div id="accordionTwo" class="panel-heading"></div>
    ...
    <div id="accordionThree" class="panel-heading"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

是否有一种简单的方法可以使插件打开给定的HTTP片段标识符

示例http://myproject/url#accordionTwo将打开第二个手风琴

html javascript fragment-identifier twitter-bootstrap

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

面料 - sudo -u

我正在使用fabric在远程服务器上启动命令.
我想以不同的用户(既不连接也不连接root)启动此命令.

def colstat():
  run('python manage.py collectstatic --noinput')
Run Code Online (Sandbox Code Playgroud)

def colstat():
  sudo('-u www-data python manage.py collectstatic --noinput')
Run Code Online (Sandbox Code Playgroud)

显然这不会起作用,因为-u将被视为命令而不是sudo的选项

out:/ bin/bash:-u:找不到命令

(www-data是应该运行命令的用户)
如何使用www-data从Fabric运行我的命令?

python django sudo fabric

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

Python - Ceil将日期时间提升到下一刻钟

让我们想象一下这个日期时间

>>> import datetime
>>> dt = datetime.datetime(2012, 10, 25, 17, 32, 16)
Run Code Online (Sandbox Code Playgroud)

我想把它提交给下一个四分之一小时,以便获得

datetime.datetime(2012, 10, 25, 17, 45)
Run Code Online (Sandbox Code Playgroud)

我想象的东西

>>> quarter = datetime.timedelta(minutes=15)
>>> import math
>>> ceiled_dt = math.ceil(dt / quarter) * quarter
Run Code Online (Sandbox Code Playgroud)

但当然这不起作用

python math datetime ceil

18
推荐指数
3
解决办法
9148
查看次数

Javascript - 正则表达式访问多次出现

我有这个文字

txt = "Local residents o1__have called g__in o22__with reports...";
Run Code Online (Sandbox Code Playgroud)

我需要在每个o和之间得到数字列表__

如果我做

txt.match(/o([0-9]+)__/g);
Run Code Online (Sandbox Code Playgroud)

我会得到

["o1__", "o22__"]
Run Code Online (Sandbox Code Playgroud)

但我想拥有

["1", "22"]
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点 ?

javascript regex

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

不使用django语言环境的系统日期格式

试图将L10N实现理解为Django,这是我的设置

LANGUAGE_CODE = 'fr-FR'
USE_L10N = True
Run Code Online (Sandbox Code Playgroud)

如果我试试

>>> datetime.datetime.strptime('2012-05-30 15:30', '%Y-%m-%d %H:%M')
      .strftime('%c')
Run Code Online (Sandbox Code Playgroud)

它会给我'Wed May 30 15:30:00 2012'这是EN语言环境.然而,医生说:

[...]访问相同内容但使用不同语言的两个用户将看到以不同方式格式化的日期和数字字段,具体取决于其当前区域设置的格式[...]

他们在谈论为各自的浏览器设置的区域设置吗?
如果没有,我怎么能默认将它设置为法语?

python django localization date-format

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

Django - 在会话中存储对象是一个好习惯吗?

class Book(models.Model):
  author = models.ForeignKey(User)
  name = models.CharField(max_length=100)

def view(request):
  book = Book.objects.get(pk=1)
  request.session['selected_book'] = book
Run Code Online (Sandbox Code Playgroud)

在会话中存储对象而不是他们的ID是一个好习惯吗?
例如,它是否可以"挑选"到模板中使用?

<div>{{ request.session.book.author.name }}</div>
Run Code Online (Sandbox Code Playgroud)

python django django-templates pickle

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