pub struct ForeignKey<T: Model> { /* private fields */ }Expand description
A many-to-one reference to T stored as T’s primary key.
Serializes as the bare key ("author": 7), like Django REST framework’s
default. The cached object is never serialized. [Validate], [Schema]
and [Dump] follow T::Pk.
Implementations§
Source§impl<T: Model> ForeignKey<T>
impl<T: Model> ForeignKey<T>
Sourcepub async fn get(&self, db: &Db) -> Result<Arc<T>, OrmError>
pub async fn get(&self, db: &Db) -> Result<Arc<T>, OrmError>
The referenced object: the cached one, or fetched by primary key (and
not cached, since self is borrowed immutably).
§Errors
QueryError::DoesNotExist for a
dangling key, or backend errors.
Sourcepub fn set_cached(&mut self, object: Arc<T>)
pub fn set_cached(&mut self, object: Arc<T>)
Replace the cached object. Ignored unless its key matches id,
so a stale object is never attached.
Trait Implementations§
Source§impl<T: Model> Clone for ForeignKey<T>
impl<T: Model> Clone for ForeignKey<T>
Source§impl<T: Model> DbType for ForeignKey<T>
impl<T: Model> DbType for ForeignKey<T>
Source§impl<T: Model> Debug for ForeignKey<T>
impl<T: Model> Debug for ForeignKey<T>
Source§impl<'de, T: Model> Deserialize<'de> for ForeignKey<T>where
T::Pk: Deserialize<'de>,
impl<'de, T: Model> Deserialize<'de> for ForeignKey<T>where
T::Pk: Deserialize<'de>,
Source§fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error>
fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error>
Deserialize this value from the given Serde deserializer. Read more
Source§impl<T: Model> Dump for ForeignKey<T>
impl<T: Model> Dump for ForeignKey<T>
§fn serialize_dump<S>(
&self,
serializer: S,
opts: &DumpOptions,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
fn serialize_dump<S>(
&self,
serializer: S,
opts: &DumpOptions,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
Serialize directly when supported, preserving
dump semantics. Read moreSource§impl<T: Model> FkSlot<T> for ForeignKey<T>
impl<T: Model> FkSlot<T> for ForeignKey<T>
Source§fn fk(&mut self) -> Option<&mut ForeignKey<T>>
fn fk(&mut self) -> Option<&mut ForeignKey<T>>
The foreign key, if set.
Source§impl<'a, T: Model> Literal<ForeignKey<T>> for &'a T
impl<'a, T: Model> Literal<ForeignKey<T>> for &'a T
Source§fn into_value(self) -> Value
fn into_value(self) -> Value
Convert into a bind value.
Source§impl<T: Model<Pk = i16>> Literal<ForeignKey<T>> for i16
impl<T: Model<Pk = i16>> Literal<ForeignKey<T>> for i16
Source§fn into_value(self) -> Value
fn into_value(self) -> Value
Convert into a bind value.
Source§impl<T: Model<Pk = i32>> Literal<ForeignKey<T>> for i32
impl<T: Model<Pk = i32>> Literal<ForeignKey<T>> for i32
Source§fn into_value(self) -> Value
fn into_value(self) -> Value
Convert into a bind value.
Source§impl<T: Model<Pk = i64>> Literal<ForeignKey<T>> for i64
impl<T: Model<Pk = i64>> Literal<ForeignKey<T>> for i64
Source§fn into_value(self) -> Value
fn into_value(self) -> Value
Convert into a bind value.
Source§impl<T: Model<Pk = Uuid>> Literal<ForeignKey<T>> for Uuid
impl<T: Model<Pk = Uuid>> Literal<ForeignKey<T>> for Uuid
Source§fn into_value(self) -> Value
fn into_value(self) -> Value
Convert into a bind value.
Source§impl<T: Model<Pk = String>> Literal<ForeignKey<T>> for String
impl<T: Model<Pk = String>> Literal<ForeignKey<T>> for String
Source§fn into_value(self) -> Value
fn into_value(self) -> Value
Convert into a bind value.
Source§impl<'a, T: Model<Pk = String>> Literal<ForeignKey<T>> for &'a str
impl<'a, T: Model<Pk = String>> Literal<ForeignKey<T>> for &'a str
Source§fn into_value(self) -> Value
fn into_value(self) -> Value
Convert into a bind value.
Source§impl<T: Model> PartialEq for ForeignKey<T>
Equality compares keys only.
impl<T: Model> PartialEq for ForeignKey<T>
Equality compares keys only.
Source§impl<T: Model + 'static> Schema for ForeignKey<T>where
T::Pk: Schema + 'static,
impl<T: Model + 'static> Schema for ForeignKey<T>where
T::Pk: Schema + 'static,
Source§impl<T: Model> Serialize for ForeignKey<T>
impl<T: Model> Serialize for ForeignKey<T>
Auto Trait Implementations§
impl<T> Freeze for ForeignKey<T>
impl<T> RefUnwindSafe for ForeignKey<T>
impl<T> Send for ForeignKey<T>
impl<T> Sync for ForeignKey<T>
impl<T> Unpin for ForeignKey<T>
impl<T> UnsafeUnpin for ForeignKey<T>
impl<T> UnwindSafe for ForeignKey<T>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> FromValues for Twhere
T: DbType,
impl<T> FromValues for Twhere
T: DbType,
Source§fn from_values(row: &Row) -> Result<T, QueryError>
fn from_values(row: &Row) -> Result<T, QueryError>
Decode
row. Read more§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> Literal<Option<T>> for Twhere
T: DbType,
impl<T> Literal<Option<T>> for Twhere
T: DbType,
Source§fn into_value(self) -> Value
fn into_value(self) -> Value
Convert into a bind value.
Source§impl<T> Literal<T> for Twhere
T: DbType,
impl<T> Literal<T> for Twhere
T: DbType,
Source§fn into_value(self) -> Value
fn into_value(self) -> Value
Convert into a bind value.