小编Int*_*ude的帖子

Django:在显示之前删除消息

我知道这个问题听起来很奇怪,但是请让我自己解释一下.

我正在使用装饰器使消息持续存在,直到用户真正解除它(就像堆栈溢出消息的行为).问题是,因此,在用户注销之前添加消息,因此在用户注销后立即显示消息.我想知道在注销视图中删除消息的最佳方法是什么.我想到了两种方法,我想知道是否有人能想到更好的方法.

我现在赞成这个:

storage = messages.get_messages(request)
storage.used = True
Run Code Online (Sandbox Code Playgroud)

在此:

storage = messages.get_messages(request)
del storage._loaded_messages[0]
Run Code Online (Sandbox Code Playgroud)

对我来说,第二种方式似乎更明确,即使它更丑陋:我的意图是删除当前加载的消息,这使得清楚.第一种方法采用一种方法,消息将被清除作为副作用......但至少它不依赖于dunder变量......你们怎么想?

django messages

22
推荐指数
3
解决办法
9394
查看次数

linq where子句和count导致null异常

除非p.School.SchoolName结果为null,否则下面的代码有效,在这种情况下,它会导致NullReferenceException.

if (ExistingUsers.Where(p => p.StudentID == item.StaffID &&
                        p.School.SchoolName == item.SchoolID).Count() > 0)
{
    // Do stuff.
}
Run Code Online (Sandbox Code Playgroud)

ExistingUsers是一个用户列表:

public List<User> ExistingUsers;
Run Code Online (Sandbox Code Playgroud)

这是stacktrace的相关部分:

System.NullReferenceException:未将对象引用设置为对象的实例.

在System.Linq.Enumerable.WhereListIterator 1源码)1.MoveNext()
at System.Linq.Enumerable.Count[TSource](IEnumerable

我应该如何处理这个where子句?

首先十分感谢.

c# linq

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

Django Admin:需要有条件地显示字段

根据其他字段的值有条件地在管理中显示字段的最佳方法是什么?

特别是我在考虑add_form和change_form.每当选择某个选项时,我想隐藏或禁用某些字段.

我认为这可能需要一个javascript解决方案,但我想知道是否有更好的(即内置)方式来做到这一点.

django django-admin

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

通过django信号向用户发送消息

如果这个问题没有意义,请原谅我; 我最近睡得很少.

我想通过django的消息模块发出信号时向用户发送通知,但是我不知道如何将请求对象传递给messages.success方法.

我这样做是因为每当用户获得徽章时我都需要告诉他.例如,当用户完成她的个人资料时,进行一定数量的评级,或者使一定数量的评论得到奖励.现在,用户告诉她有新徽章的唯一方法是转到徽章页面,但我想轻轻地告知用户该事件.

使用django通知会起作用,但是我们已经实现的系统会过于刺激(目前它加载一个模态)并且因为它击中了数据库而更加昂贵.

提前致谢.

django

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

如何获取对象具有的属性数?

我有一个具有许多属性的类,我需要找到一种方法来计算它拥有的属性数量.我想这样做,因为类读取CSV文件,如果属性数(csvcolumns)小于文件中的列数,则需要进行特殊操作.以下是我班级的示例:

    public class StaffRosterEntry : RosterEntry
    {
        [CsvColumn(FieldIndex = 0, Name = "Role")]
        public string Role { get; set; }

        [CsvColumn(FieldIndex = 1, Name = "SchoolID")]
        public string SchoolID { get; set; }

        [CsvColumn(FieldIndex = 2, Name = "StaffID")]
        public string StaffID { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

我试过这样做:

var a = Attribute.GetCustomAttributes(typeof(StaffRosterEntry));
var attributeCount = a.Count();
Run Code Online (Sandbox Code Playgroud)

但是这次失败了.非常感谢您提供的任何帮助(链接到一些文档,或其他答案,或只是建议)!

.net c# attributes

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

标签 统计

django ×3

c# ×2

.net ×1

attributes ×1

django-admin ×1

linq ×1

messages ×1