小编Ant*_*rts的帖子

重构基于Django类的视图,清理18个重复的类.

https://github.com/AnthonyBRoberts/fcclincoln/blob/master/apps/story/views.py

我有点不好意思承认这是我的.但它是.

class FrontpageView(DetailView):
    template_name = "welcome_content.html"
    def get_object(self):
        return get_object_or_404(Article, slug="front-page")
    def get_context_data(self, **kwargs):
        context = super(FrontpageView, self).get_context_data(**kwargs)
        context['slug'] = "front-page"
        events = Article.objects.filter(slug="events")
        context['events'] = events
        return context
Run Code Online (Sandbox Code Playgroud)

所以这是Django中一个非常普通的基于类的详细信息视图.

它正在分配模板,获取Article对象,并向context_data添加一些内容.

然后我复制了这个课17次.每次都有一个不同的模板,一个不同的slug,以及添加到context_data的不同内容.

我们的想法是,管理员可以使用WYSIWYG编辑器来更改Web内容,还有一个用户身份验证系统,允许多人访问网站内容.基本上,一个超级简单的CMS,所以没有人必须编辑html来更新网站.

但我真的希望我可以重构这个,所以我没有这几乎相同的18个班级.关于我应该从哪里开始的任何建议都是非常受欢迎的.

python django refactoring django-class-based-views

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

如何设置 from_email 变量

我正在尝试使用 Amazon 的 SES 和 Django-ses 应用程序发送电子邮件。它在本地工作但在服务器上失败,返回 SESAddressNotVerifiedError。

检查跟踪发现它失败了,因为 from_email 变量设置为 webmaster@localhost。我四处寻找我在 AWS-SES 中将此变量设置为我已验证的电子邮件地址的位置。

有谁知道我应该如何将 from_email var 从 webmaster@localhost 更改为 myemail@myemail.com?

谢谢,

安东尼

django amazon-ses

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

Heroku上的Rails 4.0,NoMethodError(对于#<User,未定义的方法`password_digest ='

我已经看到很多关于这个错误的帖子,但我仍然难过.

编辑:https://anthonyroberts.herokuapp.com/signup

Michael Hartl的教程,第7章结尾,你有一个工作注册表.在本地工作,但在Heroku上返回500.我重置了数据库并在Heroku上运行db:migrate,但无济于事.我尝试了Heroku控制台,并成功创建了一个用户

foo = User.create(name: "Anthony", email: "email@email.com", 
        password: "foobar", password_confirmation: "foobar")
Run Code Online (Sandbox Code Playgroud)

这有效,我有一个用户.那么为什么注册表单提交会给我这个错误:

NoMethodError (undefined method `password_digest=' for #<User:0x007f02972b7118>): 
    app/controllers/users_controller.rb:12:in `create' 
Run Code Online (Sandbox Code Playgroud)

这是user.rb:

class User < ActiveRecord::Base
    before_save { email.downcase! }
    validates :name, presence: true, length: { maximum: 50 }
    VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-]+(?:\.[a-z\d\-]+)*\.[a-z]+\z/i
    validates :email, presence: true, format: { with: VALID_EMAIL_REGEX },
                    uniqueness: { case_sensitive: false }
    has_secure_password
    validates :password, length: { minimum: 6 }
end
Run Code Online (Sandbox Code Playgroud)

这是将password_digest添加到模型的迁移:

class AddPasswordDigestToUsers < ActiveRecord::Migration
  def change
    add_column :users, :password_digest, …
Run Code Online (Sandbox Code Playgroud)

heroku nomethoderror ruby-on-rails-4

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