diff --git a/addons/website/models/ir_attachment.py b/addons/website/models/ir_attachment.py
index 15fe50f54717f42d13525be2c9e19cdf9d29b2bd..02a678ad9ec76e1fda43708f27236c1786fab1b2 100644
--- a/addons/website/models/ir_attachment.py
+++ b/addons/website/models/ir_attachment.py
@@ -17,7 +17,7 @@ class Attachment(models.Model):
 
     @api.model
     def create(self, vals):
-        website = self.env['website'].get_current_website()
+        website = self.env['website'].get_current_website(fallback=False)
         if website and 'website_id' not in vals and 'not_force_website_id' not in self.env.context:
             vals['website_id'] = website.id
         return super(Attachment, self).create(vals)
diff --git a/addons/website/models/ir_ui_view.py b/addons/website/models/ir_ui_view.py
index 6a8856f269a67673079f6df5522a390c9455f9c0..d822f3e0e10cb69c8a56a702c1c9e9f2a79fbcb3 100644
--- a/addons/website/models/ir_ui_view.py
+++ b/addons/website/models/ir_ui_view.py
@@ -30,6 +30,13 @@ class View(models.Model):
         for view in self:
             view.first_page_id = self.env['website.page'].search([('view_id', '=', view.id)], limit=1)
 
+    @api.model
+    def create(self, vals):
+        website = self.env['website'].get_current_website(fallback=False)
+        if website and 'website_id' not in vals and 'not_force_website_id' not in self.env.context:
+            vals['website_id'] = website.id
+        return super(View, self).create(vals)
+
     @api.multi
     def write(self, vals):
         '''COW for ir.ui.view. This way editing websites does not impact other
diff --git a/addons/website/models/website.py b/addons/website/models/website.py
index fc6ff771e1c72c2111f3fd6927280c4ccb1646a7..06756a444cbd7b729fb6c4641e2eccc0b66ebd9d 100644
--- a/addons/website/models/website.py
+++ b/addons/website/models/website.py
@@ -435,7 +435,7 @@ class Website(models.Model):
     # ----------------------------------------------------------
 
     @api.model
-    def get_current_website(self):
+    def get_current_website(self, fallback=True):
         if request and request.session.get('force_website_id'):
             return self.browse(request.session['force_website_id'])
 
@@ -446,15 +446,17 @@ class Website(models.Model):
         if country:
             country_id = request.env['res.country'].search([('code', '=', country)], limit=1).id
 
-        website_id = self._get_current_website_id(domain_name, country_id)
+        website_id = self._get_current_website_id(domain_name, country_id, fallback=fallback)
         return self.browse(website_id)
 
     @tools.cache('domain_name', 'country_id')
-    def _get_current_website_id(self, domain_name, country_id):
+    def _get_current_website_id(self, domain_name, country_id, fallback=True):
         # sort on country_group_ids so that we fall back on a generic website (empty country_group_ids)
         websites = self.search([('domain', '=', domain_name)]).sorted('country_group_ids')
 
         if not websites:
+            if not fallback:
+                return False
             return self.search([], limit=1).id
         elif len(websites) == 1:
             return websites.id