小编sur*_*190的帖子

Django 为什么权限代号与检查是否有权限不同?

向组添加权限时,我使用:

managers.permissions.add(
            Permission.objects.get(codename='add_user')
        )
Run Code Online (Sandbox Code Playgroud)

使用代号 add_user

现在,在检查用户是否具有特定权限时,我使用users.add_userie。在app_name前置

self.assertTrue(self.user.has_perm('users.add_user'))
Run Code Online (Sandbox Code Playgroud)

这是为什么。是否可以get通过users.add_user.

当我尝试时,我得到:

django.contrib.auth.models.DoesNotExist: Permission matching query does not exist.
Run Code Online (Sandbox Code Playgroud)

python django permissions

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

当我使用"given"时为什么会出现语法错误?

我正在尝试运行以下代码:

foreach my $k (keys %rec) {
    #switch for watchlist figures
    given ($k) { #line 93

        # Code omitted

        when ("p") { #positive breakout
            if ($row{cls} > $rec{$k}) {                       
                $email .= "positive";   
            } # line 104            
        }                       
        when ("n") { #negative breakout
            if ($row{cls} < $rec{$k}) { #line 107
Run Code Online (Sandbox Code Playgroud)

但我得到一个语法错误:

syntax error at check_watch.pl line 93, near ") {"
syntax error at check_watch.pl line 104, near "}"
Unterminated <> operator at check_watch.pl line 107.
Run Code Online (Sandbox Code Playgroud)

为什么?

perl

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

Django 如何使用 django.contrib.auth 添加注销成功消息?

我没有使用 all-auth

我正在使用标准身份验证系统和 .url 提供的django.contrib.auth.

我还确保在注销时用户会自动重定向到登录页面

LOGOUT_REDIRECT_URL = "login"
Run Code Online (Sandbox Code Playgroud)

我想添加一条消息,以便用户知道他们已被注销,例如:

from django.contrib import messages

messages.add_message(request, messages.INFO, 'You have been logged out.')
Run Code Online (Sandbox Code Playgroud)

我是否能够在不让自己的观点注销的情况下实现这一目标。我可以用signals吗?

python django

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

如何使用来自不同模型的选择字段创建自定义 Django 表单?

你如何在 Django 中使用 3 个不同的模型作为表单字段来制作表单?

这些是我的模型:

class User(models.Model):
    first_name = models.CharField(max_length=20)
    last_name = models.CharField(max_length=50)
    city = models.CharField(max_length=50)

class Team(models.Model):
    team_name = models.CharField(max_length=250)
    city = models.CharField(max_length=50)

class GameCategories(models.Model):
    CATEGORIES = (
        ('Senior', 'Senior'),
        ('Middle', 'Middle'),
        ('Junior', 'Junior'),
    )

    category = models.CharField(max_length=16, choices=CATEGORIES)
Run Code Online (Sandbox Code Playgroud)

我想使用<select><option></option></select>上述模型创建一个表单,如下所示:

<select class="form-control">
    <option value=""></option>
    <option value="user.id">user.first_name + user.last_name</option>
    <option value="user.id">user.first_name + user.last_name</option>
    <option value="user.id">user.first_name + user.last_name</option>
</select>
<select class="form-control">
    <option value=""></option>
    <option value="gamecat.id">gamecat.category</option>
    <option value="gamecat.id">gamecat.category</option>
    <option value="gamecat.id">gamecat.category</option>
</select>
<select class="form-control">
    <option value=""></option>
    <option value="team.id">team.team_name</option>
    <option value="team.id">team.team_name</option> …
Run Code Online (Sandbox Code Playgroud)

python forms django

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

项目文件存储在git存储库`.git`文件夹中的哪个位置?

我为我的许多项目创建了一个远程存储库,因此它是我的目的地push.与git的意识形态相反,但它作为一个中央存储库.

但是,当我转到*.git服务器上的文件夹时,有一个表单的目录结构:

 - /branches
 - /hooks
   - applypatch-msg.sample
   - commit-msg.sample
   - etc
 - /info
   - exlude
 - /objects
   - 06
   - 1c
   - various hex numbers
   - pack
 - /refs
   - /tags
   - /heads
     - master
 - config
 - description
 - HEAD
Run Code Online (Sandbox Code Playgroud)

这里发生了什么,我敢肯定,如果我研究了git的内部工作,我将能够弄明白,但是项目文件在哪里?

更新

我用以下方式创建了回购:

  1. 有一个现有的本地git存储库
  2. 向本地添加了远程 git remote add origin git@site.co.za:project_name.git
  3. 在服务器上,创建了一个名为'git init --bare project_name.git`的基本存储库
  4. 从本地推送到远程 git push origin master

git github

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

为什么在PHP中为数组分配新值会失败?

考虑:

array (size=1)
  0 =>
    array (size=5)
      'name' => string '15268459735 Farming and Projects XXXXX' (length=38)
      'region' => string '2' (length=1)
      'entitynumber' => string '2012/002086/24' (length=14)
      'ownership' => string '6' (length=1)
      'id' => string '26249' (length=5)
Run Code Online (Sandbox Code Playgroud)

为什么以下仍然返回没有owner元素的相同数组?

foreach ($result as $row)
{
    $row['owner'] = 1;
}
Run Code Online (Sandbox Code Playgroud)

php

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

您是否可以将DBFlow Android ORM与随应用程序打包的existsng数据库一起使用?

您可以将DbFlow ORM与现有SQLite数据库一起使用.这是与应用程序一起打包并在初始安装时复制(从assets文件夹)?

android android-sqlite dbflow

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

为什么Django十进制max_digits验证失败并出现奇怪的行为?

我有一个模型领域full_time_equivalent

full_time_equivalent = models.DecimalField(
    max_digits=5,
    decimal_places=2,
    default=100,
    validators=[
        MinValueValidator(Decimal(0)),
        MaxValueValidator(Decimal(100))
    ]
)
Run Code Online (Sandbox Code Playgroud)

为了确保验证器能够触发,我使用以下命令进行覆盖save

def save(self, *args, **kwargs):
    # Run validations
    self.full_clean()
    return super().save(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)

通过以下测试:

    project2_membership = ProjectMembership(
        user=self.new_user,
        project=project2,
        is_project_manager=False,
        full_time_equivalent=10.01
    )
Run Code Online (Sandbox Code Playgroud)

当我进入验证时,将显示以下值和相应的错误:

Decimal('10.0099999999999997868371792719699442386627197265625')


django.core.exceptions.ValidationError: 
{'full_time_equivalent': ['Ensure that there are no more than 5 digits in total.']
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

python django

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

如何根据 Django 中的用户从 CreateView 中删除字段?

我创建了一个 CBV,我想根据用户删除其中的一个或多个字段。这个想法是一个工作场所,如果登录用户是招聘人员,employer则应包括该字段,否则应排除该字段。

表格.py

class JobCreationForm(forms.ModelForm):
    class Meta:
        model = Job
        # exclude = ['posted', 'provider', 'ext_id']
        fields = ('title',
                'job_desc', 
                'agency_name',
                'employer', 
                'contact_name',
                )
Run Code Online (Sandbox Code Playgroud)

视图.py

class JobCreateView(LoginRequiredMixin, CreateView): 
    template_name = 'job/job.html'
    form_class = JobCreationForm
    success_url = '/'

    def get_context_data(self, **kwargs):
        context = super(JobCreateView, self).get_context_data(**kwargs)
        # import the Customers of this Company
        self.fields["agency_name"].remove()
        recruiter = self.request.user
        self.fields["contact_name"].queryset = Profile.objects.filter(user_id = self.request.user)
        # if the user is a recruiter, delete the employer field.
        if Company.objects.filter(user_id = self.request.user).values('is_recruiter') == False:
            pass …
Run Code Online (Sandbox Code Playgroud)

python django form-fields django-class-based-views

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

Git 重置不会更改服务器版本?

团队中的一个提交并推送到远程,我们都包括服务器拉取了最新版本。

但现在它已经破坏了应用程序的一个重要部分。所以我们:

git reset HEAD^ --hard

git push origin -f
Run Code Online (Sandbox Code Playgroud)

推送后的消息是:

Total 0 (delta 0), reused 0 (delta 0)...forced update
Run Code Online (Sandbox Code Playgroud)

然后我在服务器上拉:

git pull
Run Code Online (Sandbox Code Playgroud)

它说的消息是:

Already up-to-date
Run Code Online (Sandbox Code Playgroud)

所以它没有恢复到上一次提交之前的那个。在我的本地版本上它是正确的提交,但在服务器上它仍然是旧的。

主要(中央)存储库是 github 上的存储库,然后是服务器版本,然后是我的本地存储库。

git github

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